summaryrefslogtreecommitdiff
path: root/noncore/net/mail/libmailwrapper/imapwrapper.cpp
Unidiff
Diffstat (limited to 'noncore/net/mail/libmailwrapper/imapwrapper.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/libmailwrapper/imapwrapper.cpp12
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
7IMAPwrapper::IMAPwrapper( IMAPaccount *a ) 8IMAPwrapper::IMAPwrapper( IMAPaccount *a )
8{ 9{
9 account = a; 10 account = a;
10 m_imap = 0; 11 m_imap = 0;
11} 12}
12 13
13IMAPwrapper::~IMAPwrapper() 14IMAPwrapper::~IMAPwrapper()
14{ 15{
15 logout(); 16 logout();
16} 17}
@@ -55,25 +56,25 @@ void IMAPwrapper::login()
55} 56}
56 57
57void IMAPwrapper::logout() 58void 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
67void IMAPwrapper::listMessages(const QString&mailbox,Maillist&target ) 68void 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
332QString IMAPwrapper::fetchBody(const RecMail&mail) 333RecBody 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
383QString IMAPwrapper::fetchBody(const RecMail&mail) 387QString IMAPwrapper::fetchBody(const RecMail&mail)