Diffstat (limited to 'noncore/net/mail/libmailwrapper') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/net/mail/libmailwrapper/pop3wrapper.cpp | 74 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/pop3wrapper.h | 28 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/settings.cpp | 4 |
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 | |||
6 | POP3wrapper::POP3wrapper( POP3account *a ) | ||
7 | { | ||
8 | account = a; | ||
9 | } | ||
10 | |||
11 | POP3wrapper::~POP3wrapper() | ||
12 | { | ||
13 | logout(); | ||
14 | } | ||
15 | |||
16 | void POP3wrapper::pop3_progress( size_t current, size_t maximum ) | ||
17 | { | ||
18 | qDebug( "POP3: %i of %i", current, maximum ); | ||
19 | } | ||
20 | |||
21 | void POP3wrapper::listMessages( QList<RecMail> &target ) | ||
22 | { | ||
23 | login(); | ||
24 | //TODO: list messages | ||
25 | logout(); | ||
26 | } | ||
27 | |||
28 | void 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 | |||
65 | void 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 | |||
6 | class RecMail; | ||
7 | |||
8 | class POP3wrapper : public QObject | ||
9 | { | ||
10 | Q_OBJECT | ||
11 | |||
12 | public: | ||
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 | |||
18 | protected: | ||
19 | void login(); | ||
20 | void logout(); | ||
21 | |||
22 | private: | ||
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 | ||
129 | QString IMAPaccount::getUniqueFileName() | 129 | QString 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 | ||
145 | void IMAPaccount::read() | 144 | void 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 | ||
207 | QString POP3account::getUniqueFileName() | 206 | QString 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 | ||
223 | void POP3account::read() | 221 | void 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 | ||
285 | QString SMTPaccount::getUniqueFileName() | 283 | QString 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 | ||
301 | void SMTPaccount::read() | 298 | void 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 | ||
381 | QString NNTPaccount::getUniqueFileName() | 378 | QString 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 | ||
397 | void NNTPaccount::read() | 393 | void NNTPaccount::read() |
398 | { | 394 | { |
399 | Config *conf = new Config( getFileName(), Config::File ); | 395 | Config *conf = new Config( getFileName(), Config::File ); |