author | alwin <alwin> | 2003-12-23 01:58:59 (UTC) |
---|---|---|
committer | alwin <alwin> | 2003-12-23 01:58:59 (UTC) |
commit | 127c50cc446de489c702400ebc5fc4874f6311b2 (patch) (side-by-side diff) | |
tree | 86ba684107eb2258e22b613c8c0dfa1a0c8a1bda /noncore/net/mail/libmailwrapper/mboxwrapper.cpp | |
parent | 04a7006c0392c02941e263d4d35edeeb2f98223d (diff) | |
download | opie-127c50cc446de489c702400ebc5fc4874f6311b2.zip opie-127c50cc446de489c702400ebc5fc4874f6311b2.tar.gz opie-127c50cc446de489c702400ebc5fc4874f6311b2.tar.bz2 |
UFFFFFFF
flushing send queue mostly finished.
Attention: To get it work you must apply the patches from the libetpan/
directory!
ToDo:
- when flush then select a smtp-account to use for when there are more
than one smtp accounts. (opiemail.cpp) This moment I just use the first one.
- the special funs in mboxwrapper (deleting range of mail, storing a message
to a folder) should go to all mailbox wrappers, means into the global interface
of them.
- cleanup/review the code of the smtp-wrapper.
Diffstat (limited to 'noncore/net/mail/libmailwrapper/mboxwrapper.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/mail/libmailwrapper/mboxwrapper.cpp | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/noncore/net/mail/libmailwrapper/mboxwrapper.cpp b/noncore/net/mail/libmailwrapper/mboxwrapper.cpp index 8117cef..293ae1b 100644 --- a/noncore/net/mail/libmailwrapper/mboxwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/mboxwrapper.cpp @@ -216,4 +216,70 @@ void MBOXwrapper::storeMessage(const char*msg,size_t length, const QString&folde qDebug("Error writing message folder"); } mailmbox_done(f); } + +void MBOXwrapper::fetchRawBody(const RecMail&mail,char**target,size_t*length) +{ + RecBody body; + mailstorage*storage = mailstorage_new(NULL); + QString p = MBOXPath+"/"; + p+=mail.getMbox(); + mailmessage * msg; + char*data=0; + size_t size; + + int r = mbox_mailstorage_init(storage,strdup(p.latin1()),0,0,0); + mailfolder*folder; + folder = mailfolder_new( storage,strdup(p.latin1()),NULL); + r = mailfolder_connect(folder); + if (r != MAIL_NO_ERROR) { + qDebug("Error initializing mbox"); + mailfolder_free(folder); + mailstorage_free(storage); + return; + } + r = mailsession_get_message(folder->fld_session, mail.getNumber(), &msg); + if (r != MAIL_NO_ERROR) { + qDebug("Error fetching mail %i",mail.getNumber()); + mailfolder_free(folder); + mailstorage_free(storage); + return; + } + r = mailmessage_fetch(msg,&data,&size); + if (r != MAIL_NO_ERROR) { + qDebug("Error fetching mail %i",mail.getNumber()); + mailfolder_free(folder); + mailstorage_free(storage); + mailmessage_free(msg); + return; + } + *target = data; + *length = size; + mailfolder_free(folder); + mailstorage_free(storage); + mailmessage_free(msg); +} + +void MBOXwrapper::deleteMails(const QString & mailbox,QList<RecMail> &target) +{ + QString p = MBOXPath+"/"; + p+=mailbox; + mailmbox_folder*f = 0; + int r = mailmbox_init(p.latin1(),0,1,0,&f); + if (r != MAIL_NO_ERROR) { + qDebug("Error init folder"); + return; + } + for (unsigned int i=0; i < target.count();++i) { + r = mailmbox_delete_msg(f,target.at(i)->getNumber()); + if (r!=MAILMBOX_NO_ERROR) { + qDebug("error delete mail"); + } + } + r = mailmbox_expunge(f); + if (r != MAILMBOX_NO_ERROR) { + qDebug("error expunge mailbox"); + } + mailmbox_done(f); +} + |