Diffstat (limited to 'noncore/net/mail/libmailwrapper/imapwrapper.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/mail/libmailwrapper/imapwrapper.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.cpp b/noncore/net/mail/libmailwrapper/imapwrapper.cpp index 1acc036..725dcc9 100644 --- a/noncore/net/mail/libmailwrapper/imapwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/imapwrapper.cpp | |||
@@ -1,16 +1,17 @@ | |||
1 | 1 | ||
2 | #include <stdlib.h> | 2 | #include <stdlib.h> |
3 | 3 | ||
4 | #include "imapwrapper.h" | 4 | #include "imapwrapper.h" |
5 | #include "mailtypes.h" | ||
5 | #include <libetpan/mailimap.h> | 6 | #include <libetpan/mailimap.h> |
6 | 7 | ||
7 | IMAPwrapper::IMAPwrapper( IMAPaccount *a ) | 8 | IMAPwrapper::IMAPwrapper( IMAPaccount *a ) |
8 | { | 9 | { |
9 | account = a; | 10 | account = a; |
10 | m_imap = 0; | 11 | m_imap = 0; |
11 | } | 12 | } |
12 | 13 | ||
13 | IMAPwrapper::~IMAPwrapper() | 14 | IMAPwrapper::~IMAPwrapper() |
14 | { | 15 | { |
15 | logout(); | 16 | logout(); |
16 | } | 17 | } |
@@ -55,25 +56,25 @@ void IMAPwrapper::login() | |||
55 | } | 56 | } |
56 | 57 | ||
57 | void IMAPwrapper::logout() | 58 | void IMAPwrapper::logout() |
58 | { | 59 | { |
59 | int err = MAILIMAP_NO_ERROR; | 60 | int err = MAILIMAP_NO_ERROR; |
60 | if (!m_imap) return; | 61 | if (!m_imap) return; |
61 | err = mailimap_logout( m_imap ); | 62 | err = mailimap_logout( m_imap ); |
62 | err = mailimap_close( m_imap ); | 63 | err = mailimap_close( m_imap ); |
63 | mailimap_free( m_imap ); | 64 | mailimap_free( m_imap ); |
64 | m_imap = 0; | 65 | m_imap = 0; |
65 | } | 66 | } |
66 | 67 | ||
67 | void IMAPwrapper::listMessages(const QString&mailbox,Maillist&target ) | 68 | void IMAPwrapper::listMessages(const QString&mailbox,QList<RecMail> &target ) |
68 | { | 69 | { |
69 | const char *mb; | 70 | const char *mb; |
70 | int err = MAILIMAP_NO_ERROR; | 71 | int err = MAILIMAP_NO_ERROR; |
71 | clist *result; | 72 | clist *result; |
72 | clistcell *current; | 73 | clistcell *current; |
73 | mailimap_fetch_att *fetchAtt,*fetchAttFlags,*fetchAttDate; | 74 | mailimap_fetch_att *fetchAtt,*fetchAttFlags,*fetchAttDate; |
74 | mailimap_fetch_type *fetchType; | 75 | mailimap_fetch_type *fetchType; |
75 | mailimap_set *set; | 76 | mailimap_set *set; |
76 | 77 | ||
77 | mb = mailbox.latin1(); | 78 | mb = mailbox.latin1(); |
78 | login(); | 79 | login(); |
79 | if (!m_imap) { | 80 | if (!m_imap) { |
@@ -320,27 +321,29 @@ RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att) | |||
320 | /* msg is already deleted */ | 321 | /* msg is already deleted */ |
321 | if (mFlags.testBit(FLAG_DELETED) && m) { | 322 | if (mFlags.testBit(FLAG_DELETED) && m) { |
322 | delete m; | 323 | delete m; |
323 | m = 0; | 324 | m = 0; |
324 | } | 325 | } |
325 | if (m) { | 326 | if (m) { |
326 | m->setFlags(mFlags); | 327 | m->setFlags(mFlags); |
327 | } | 328 | } |
328 | return m; | 329 | return m; |
329 | } | 330 | } |
330 | 331 | ||
331 | #if 1 | 332 | #if 1 |
332 | QString IMAPwrapper::fetchBody(const RecMail&mail) | 333 | RecBody IMAPwrapper::fetchBody(const RecMail&mail) |
333 | { | 334 | { |
334 | QString body = ""; | 335 | RecBody body; |
336 | QString body_text; | ||
337 | |||
335 | const char *mb; | 338 | const char *mb; |
336 | int err = MAILIMAP_NO_ERROR; | 339 | int err = MAILIMAP_NO_ERROR; |
337 | clist *result; | 340 | clist *result; |
338 | clistcell *current; | 341 | clistcell *current; |
339 | mailimap_fetch_att *fetchAtt; | 342 | mailimap_fetch_att *fetchAtt; |
340 | mailimap_fetch_type *fetchType; | 343 | mailimap_fetch_type *fetchType; |
341 | mailimap_set *set; | 344 | mailimap_set *set; |
342 | 345 | ||
343 | mb = mail.getMbox().latin1(); | 346 | mb = mail.getMbox().latin1(); |
344 | 347 | ||
345 | login(); | 348 | login(); |
346 | if (!m_imap) { | 349 | if (!m_imap) { |
@@ -359,25 +362,26 @@ QString IMAPwrapper::fetchBody(const RecMail&mail) | |||
359 | fetchAtt = mailimap_fetch_att_new_rfc822_text(); | 362 | fetchAtt = mailimap_fetch_att_new_rfc822_text(); |
360 | fetchType = mailimap_fetch_type_new_fetch_att(fetchAtt); | 363 | fetchType = mailimap_fetch_type_new_fetch_att(fetchAtt); |
361 | err = mailimap_fetch( m_imap, set, fetchType, &result ); | 364 | err = mailimap_fetch( m_imap, set, fetchType, &result ); |
362 | mailimap_set_free( set ); | 365 | mailimap_set_free( set ); |
363 | mailimap_fetch_type_free( fetchType ); | 366 | mailimap_fetch_type_free( fetchType ); |
364 | 367 | ||
365 | if (err == MAILIMAP_NO_ERROR && (current=clist_begin(result)) ) { | 368 | if (err == MAILIMAP_NO_ERROR && (current=clist_begin(result)) ) { |
366 | mailimap_msg_att * msg_att; | 369 | mailimap_msg_att * msg_att; |
367 | msg_att = (mailimap_msg_att*)current->data; | 370 | msg_att = (mailimap_msg_att*)current->data; |
368 | mailimap_msg_att_item*item = (mailimap_msg_att_item*)msg_att->list->first->data; | 371 | mailimap_msg_att_item*item = (mailimap_msg_att_item*)msg_att->list->first->data; |
369 | 372 | ||
370 | if (item->msg_att_static && item->msg_att_static->rfc822_text) { | 373 | if (item->msg_att_static && item->msg_att_static->rfc822_text) { |
371 | body = item->msg_att_static->rfc822_text; | 374 | body_text = item->msg_att_static->rfc822_text; |
375 | body.setBodytext(body_text); | ||
372 | } | 376 | } |
373 | } else { | 377 | } else { |
374 | qDebug("error fetching text: %s",m_imap->response); | 378 | qDebug("error fetching text: %s",m_imap->response); |
375 | } | 379 | } |
376 | 380 | ||
377 | clist_free(result); | 381 | clist_free(result); |
378 | logout(); | 382 | logout(); |
379 | return body; | 383 | return body; |
380 | } | 384 | } |
381 | 385 | ||
382 | #else | 386 | #else |
383 | QString IMAPwrapper::fetchBody(const RecMail&mail) | 387 | QString IMAPwrapper::fetchBody(const RecMail&mail) |