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 | |||
@@ -129,13 +129,12 @@ IMAPaccount::IMAPaccount( QString filename ) | |||
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 | ||
@@ -207,13 +206,12 @@ POP3account::POP3account( QString filename ) | |||
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 | ||
@@ -285,13 +283,12 @@ SMTPaccount::SMTPaccount( QString filename ) | |||
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 | ||
@@ -381,13 +378,12 @@ NNTPaccount::NNTPaccount( QString filename ) | |||
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 | ||