summaryrefslogtreecommitdiff
path: root/noncore/net/mail/libmailwrapper/mboxwrapper.cpp
authoralwin <alwin>2003-12-23 01:58:59 (UTC)
committer alwin <alwin>2003-12-23 01:58:59 (UTC)
commit127c50cc446de489c702400ebc5fc4874f6311b2 (patch) (side-by-side diff)
tree86ba684107eb2258e22b613c8c0dfa1a0c8a1bda /noncore/net/mail/libmailwrapper/mboxwrapper.cpp
parent04a7006c0392c02941e263d4d35edeeb2f98223d (diff)
downloadopie-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.cpp66
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
@@ -219 +219,67 @@ void MBOXwrapper::storeMessage(const char*msg,size_t length, const QString&folde
}
+
+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);
+}
+