summaryrefslogtreecommitdiff
path: root/noncore/net/mail/mboxwrapper.cpp
Unidiff
Diffstat (limited to 'noncore/net/mail/mboxwrapper.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/mboxwrapper.cpp66
1 files changed, 66 insertions, 0 deletions
diff --git a/noncore/net/mail/mboxwrapper.cpp b/noncore/net/mail/mboxwrapper.cpp
index 8117cef..293ae1b 100644
--- a/noncore/net/mail/mboxwrapper.cpp
+++ b/noncore/net/mail/mboxwrapper.cpp
@@ -219 +219,67 @@ void MBOXwrapper::storeMessage(const char*msg,size_t length, const QString&folde
219} 219}
220
221void MBOXwrapper::fetchRawBody(const RecMail&mail,char**target,size_t*length)
222{
223 RecBody body;
224 mailstorage*storage = mailstorage_new(NULL);
225 QString p = MBOXPath+"/";
226 p+=mail.getMbox();
227 mailmessage * msg;
228 char*data=0;
229 size_t size;
230
231 int r = mbox_mailstorage_init(storage,strdup(p.latin1()),0,0,0);
232 mailfolder*folder;
233 folder = mailfolder_new( storage,strdup(p.latin1()),NULL);
234 r = mailfolder_connect(folder);
235 if (r != MAIL_NO_ERROR) {
236 qDebug("Error initializing mbox");
237 mailfolder_free(folder);
238 mailstorage_free(storage);
239 return;
240 }
241 r = mailsession_get_message(folder->fld_session, mail.getNumber(), &msg);
242 if (r != MAIL_NO_ERROR) {
243 qDebug("Error fetching mail %i",mail.getNumber());
244 mailfolder_free(folder);
245 mailstorage_free(storage);
246 return;
247 }
248 r = mailmessage_fetch(msg,&data,&size);
249 if (r != MAIL_NO_ERROR) {
250 qDebug("Error fetching mail %i",mail.getNumber());
251 mailfolder_free(folder);
252 mailstorage_free(storage);
253 mailmessage_free(msg);
254 return;
255 }
256 *target = data;
257 *length = size;
258 mailfolder_free(folder);
259 mailstorage_free(storage);
260 mailmessage_free(msg);
261}
262
263void MBOXwrapper::deleteMails(const QString & mailbox,QList<RecMail> &target)
264{
265 QString p = MBOXPath+"/";
266 p+=mailbox;
267 mailmbox_folder*f = 0;
268 int r = mailmbox_init(p.latin1(),0,1,0,&f);
269 if (r != MAIL_NO_ERROR) {
270 qDebug("Error init folder");
271 return;
272 }
273 for (unsigned int i=0; i < target.count();++i) {
274 r = mailmbox_delete_msg(f,target.at(i)->getNumber());
275 if (r!=MAILMBOX_NO_ERROR) {
276 qDebug("error delete mail");
277 }
278 }
279 r = mailmbox_expunge(f);
280 if (r != MAILMBOX_NO_ERROR) {
281 qDebug("error expunge mailbox");
282 }
283 mailmbox_done(f);
284}
285