Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

storemail.cpp

Go to the documentation of this file.
00001 #include "storemail.h"
00002 #include "mailwrapper.h"
00003 #include "settings.h"
00004 #include "abstractmail.h"
00005 
00006 #include <libetpan/libetpan.h>
00007 #include <opie2/odebug.h>
00008 #include <qstring.h>
00009 
00010 #include <stdlib.h>
00011 
00012 using namespace Opie::Core;
00013 Storemail::Storemail(Account*aAccount,const QString&aFolder)
00014     : Generatemail()
00015 {
00016     wrapper = 0;
00017     m_Account = aAccount;
00018     m_tfolder = aFolder;
00019     wrapper = AbstractMail::getWrapper(m_Account);
00020     if (wrapper) {
00021         wrapper->createMbox(m_tfolder);
00022     }
00023 }
00024 
00025 Storemail::Storemail(const QString&dir,const QString&aFolder)
00026     : Generatemail()
00027 {
00028     wrapper = 0;
00029     m_Account = 0;
00030     m_tfolder = aFolder;
00031     wrapper = AbstractMail::getWrapper(dir);
00032     if (wrapper) {
00033         wrapper->createMbox(m_tfolder);
00034     }
00035 }
00036 
00037 Storemail::Storemail(const QString&aFolder)
00038     : Generatemail()
00039 {
00040     wrapper = 0;
00041     m_Account = 0;
00042     m_tfolder = aFolder;
00043     wrapper = AbstractMail::getWrapper(AbstractMail::defaultLocalfolder());
00044     if (wrapper) {
00045         wrapper->createMbox(m_tfolder);
00046     }
00047 }
00048 
00049 Storemail::~Storemail()
00050 {
00051 }
00052 
00053 int Storemail::storeMail(const Opie::Core::OSmartPointer<Mail>&mail)
00054 {
00055     if (!wrapper) return 0;
00056     int ret = 1;
00057 
00058     mailmime * mimeMail = 0;
00059     mimeMail = createMimeMail(mail );
00060     if ( mimeMail == NULL ) {
00061         odebug << "storeMail: error creating mime mail" << oendl; 
00062         return 0;
00063     }
00064     char *data;
00065     size_t size;
00066     data = 0;
00067 
00068     mailmessage * msg = 0;
00069     msg = mime_message_init(mimeMail);
00070     mime_message_set_tmpdir(msg,getenv( "HOME" ));
00071     int r = mailmessage_fetch(msg,&data,&size);
00072     mime_message_detach_mime(msg);
00073     mailmessage_free(msg);
00074     msg = 0;
00075     if (r != MAIL_NO_ERROR || !data) {
00076         odebug << "Error fetching mime..." << oendl; 
00077         ret = 0;
00078     }
00079 
00080     if (ret) {
00081         wrapper->storeMessage(data,size,m_tfolder);
00082     }
00083 
00084     if (data) {
00085         free(data);
00086     }
00087     if (mimeMail) {
00088         mailmime_free( mimeMail );
00089     }
00090     return ret;
00091 }

Generated on Sat Nov 5 16:17:39 2005 for OPIE by  doxygen 1.4.2