summaryrefslogtreecommitdiff
path: root/noncore/net/mail/libmailwrapper
Unidiff
Diffstat (limited to 'noncore/net/mail/libmailwrapper') (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/mail/libmailwrapper/pop3wrapper.cpp74
-rw-r--r--noncore/net/mail/libmailwrapper/pop3wrapper.h28
-rw-r--r--noncore/net/mail/libmailwrapper/settings.cpp4
3 files changed, 102 insertions, 4 deletions
diff --git a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
new file mode 100644
index 0000000..08e97f4
--- a/dev/null
+++ b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
@@ -0,0 +1,74 @@
1
2#include "pop3wrapper.h"
3#include "mailtypes.h"
4#include <libetpan/mailpop3.h>
5
6POP3wrapper::POP3wrapper( POP3account *a )
7{
8 account = a;
9}
10
11POP3wrapper::~POP3wrapper()
12{
13 logout();
14}
15
16void POP3wrapper::pop3_progress( size_t current, size_t maximum )
17{
18 qDebug( "POP3: %i of %i", current, maximum );
19}
20
21void POP3wrapper::listMessages( QList<RecMail> &target )
22{
23 login();
24 //TODO: list messages
25 logout();
26}
27
28void POP3wrapper::login()
29{
30 logout();
31 const char *server, *user, *pass;
32 uint16_t port;
33 int err = MAILPOP3_NO_ERROR;
34
35 server = account->getServer().latin1();
36 port = account->getPort().toUInt();
37 user = account->getUser().latin1();
38 pass = account->getPassword().latin1();
39
40 m_pop3 = mailpop3_new( 20, &pop3_progress );
41
42 // connect
43 err = mailpop3_socket_connect( m_pop3, (char *) server, port );
44 if ( err != MAILPOP3_NO_ERROR ) {
45 qDebug( "pop3: error connecting to %s\n reason: %s", server,
46 m_pop3->response );
47 mailpop3_free( m_pop3 );
48 m_pop3 = NULL;
49 return;
50 }
51 qDebug( "POP3: connected!" );
52
53 // login
54 // TODO: decide if apop or plain login should be used
55 err = mailpop3_login( m_pop3, (char *) user, (char *) pass );
56 if ( err != MAILPOP3_NO_ERROR ) {
57 qDebug( "pop3: error logging in: %s", m_pop3->response );
58 logout();
59 return;
60 }
61
62 qDebug( "POP3: logged in!" );
63}
64
65void POP3wrapper::logout()
66{
67 int err = MAILPOP3_NO_ERROR;
68 if ( !m_pop3 ) return;
69 err = mailpop3_quit( m_pop3 );
70 mailpop3_free( m_pop3 );
71 m_pop3 = NULL;
72}
73
74
diff --git a/noncore/net/mail/libmailwrapper/pop3wrapper.h b/noncore/net/mail/libmailwrapper/pop3wrapper.h
new file mode 100644
index 0000000..b791409
--- a/dev/null
+++ b/noncore/net/mail/libmailwrapper/pop3wrapper.h
@@ -0,0 +1,28 @@
1#ifndef __POP3WRAPPER
2#define __POP3WRAPPER
3
4#include "mailwrapper.h"
5
6class RecMail;
7
8class POP3wrapper : public QObject
9{
10 Q_OBJECT
11
12public:
13 POP3wrapper( POP3account *a );
14 virtual ~POP3wrapper();
15 void listMessages( QList<RecMail> &target );
16 static void pop3_progress( size_t current, size_t maximum );
17
18protected:
19 void login();
20 void logout();
21
22private:
23 POP3account *account;
24 mailpop3 *m_pop3;
25
26};
27
28#endif
diff --git a/noncore/net/mail/libmailwrapper/settings.cpp b/noncore/net/mail/libmailwrapper/settings.cpp
index 9632301..b580954 100644
--- a/noncore/net/mail/libmailwrapper/settings.cpp
+++ b/noncore/net/mail/libmailwrapper/settings.cpp
@@ -123,25 +123,24 @@ IMAPaccount::IMAPaccount( QString filename )
123 accountName = "New IMAP Account"; 123 accountName = "New IMAP Account";
124 ssl = false; 124 ssl = false;
125 type = "IMAP"; 125 type = "IMAP";
126 port = IMAP_PORT; 126 port = IMAP_PORT;
127} 127}
128 128
129QString IMAPaccount::getUniqueFileName() 129QString IMAPaccount::getUniqueFileName()
130{ 130{
131 int num = 0; 131 int num = 0;
132 QString unique; 132 QString unique;
133 133
134 QDir dir( (QString) getenv( "HOME" ) + "/Applications/opiemail" ); 134 QDir dir( (QString) getenv( "HOME" ) + "/Applications/opiemail" );
135 QStringList::Iterator it;
136 135
137 QStringList imap = dir.entryList( "imap-*" ); 136 QStringList imap = dir.entryList( "imap-*" );
138 do { 137 do {
139 unique.setNum( num++ ); 138 unique.setNum( num++ );
140 } while ( imap.contains( "imap-" + unique ) > 0 ); 139 } while ( imap.contains( "imap-" + unique ) > 0 );
141 140
142 return unique; 141 return unique;
143} 142}
144 143
145void IMAPaccount::read() 144void IMAPaccount::read()
146{ 145{
147 Config *conf = new Config( getFileName(), Config::File ); 146 Config *conf = new Config( getFileName(), Config::File );
@@ -201,25 +200,24 @@ POP3account::POP3account( QString filename )
201 accountName = "New POP3 Account"; 200 accountName = "New POP3 Account";
202 ssl = false; 201 ssl = false;
203 type = "POP3"; 202 type = "POP3";
204 port = POP3_PORT; 203 port = POP3_PORT;
205} 204}
206 205
207QString POP3account::getUniqueFileName() 206QString POP3account::getUniqueFileName()
208{ 207{
209 int num = 0; 208 int num = 0;
210 QString unique; 209 QString unique;
211 210
212 QDir dir( (QString) getenv( "HOME" ) + "/Applications/opiemail" ); 211 QDir dir( (QString) getenv( "HOME" ) + "/Applications/opiemail" );
213 QStringList::Iterator it;
214 212
215 QStringList imap = dir.entryList( "pop3-*" ); 213 QStringList imap = dir.entryList( "pop3-*" );
216 do { 214 do {
217 unique.setNum( num++ ); 215 unique.setNum( num++ );
218 } while ( imap.contains( "pop3-" + unique ) > 0 ); 216 } while ( imap.contains( "pop3-" + unique ) > 0 );
219 217
220 return unique; 218 return unique;
221} 219}
222 220
223void POP3account::read() 221void POP3account::read()
224{ 222{
225 Config *conf = new Config( getFileName(), Config::File ); 223 Config *conf = new Config( getFileName(), Config::File );
@@ -279,25 +277,24 @@ SMTPaccount::SMTPaccount( QString filename )
279 useBCC = false; 277 useBCC = false;
280 useReply = false; 278 useReply = false;
281 type = "SMTP"; 279 type = "SMTP";
282 port = SMTP_PORT; 280 port = SMTP_PORT;
283} 281}
284 282
285QString SMTPaccount::getUniqueFileName() 283QString SMTPaccount::getUniqueFileName()
286{ 284{
287 int num = 0; 285 int num = 0;
288 QString unique; 286 QString unique;
289 287
290 QDir dir( (QString) getenv( "HOME" ) + "/Applications/opiemail" ); 288 QDir dir( (QString) getenv( "HOME" ) + "/Applications/opiemail" );
291 QStringList::Iterator it;
292 289
293 QStringList imap = dir.entryList( "smtp-*" ); 290 QStringList imap = dir.entryList( "smtp-*" );
294 do { 291 do {
295 unique.setNum( num++ ); 292 unique.setNum( num++ );
296 } while ( imap.contains( "smtp-" + unique ) > 0 ); 293 } while ( imap.contains( "smtp-" + unique ) > 0 );
297 294
298 return unique; 295 return unique;
299} 296}
300 297
301void SMTPaccount::read() 298void SMTPaccount::read()
302{ 299{
303 Config *conf = new Config( getFileName(), Config::File ); 300 Config *conf = new Config( getFileName(), Config::File );
@@ -375,25 +372,24 @@ NNTPaccount::NNTPaccount( QString filename )
375 ssl = false; 372 ssl = false;
376 login = false; 373 login = false;
377 type = "NNTP"; 374 type = "NNTP";
378 port = NNTP_PORT; 375 port = NNTP_PORT;
379} 376}
380 377
381QString NNTPaccount::getUniqueFileName() 378QString NNTPaccount::getUniqueFileName()
382{ 379{
383 int num = 0; 380 int num = 0;
384 QString unique; 381 QString unique;
385 382
386 QDir dir( (QString) getenv( "HOME" ) + "/Applications/opiemail" ); 383 QDir dir( (QString) getenv( "HOME" ) + "/Applications/opiemail" );
387 QStringList::Iterator it;
388 384
389 QStringList imap = dir.entryList( "nntp-*" ); 385 QStringList imap = dir.entryList( "nntp-*" );
390 do { 386 do {
391 unique.setNum( num++ ); 387 unique.setNum( num++ );
392 } while ( imap.contains( "nntp-" + unique ) > 0 ); 388 } while ( imap.contains( "nntp-" + unique ) > 0 );
393 389
394 return unique; 390 return unique;
395} 391}
396 392
397void NNTPaccount::read() 393void NNTPaccount::read()
398{ 394{
399 Config *conf = new Config( getFileName(), Config::File ); 395 Config *conf = new Config( getFileName(), Config::File );