Diffstat (limited to 'noncore/net/mail/libmailwrapper') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/mail/libmailwrapper/abstractmail.cpp | 19 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/abstractmail.h | 2 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/imapwrapper.cpp | 31 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/imapwrapper.h | 1 |
4 files changed, 53 insertions, 0 deletions
diff --git a/noncore/net/mail/libmailwrapper/abstractmail.cpp b/noncore/net/mail/libmailwrapper/abstractmail.cpp index 3dd2fce..4b4c728 100644 --- a/noncore/net/mail/libmailwrapper/abstractmail.cpp +++ b/noncore/net/mail/libmailwrapper/abstractmail.cpp | |||
@@ -95,12 +95,31 @@ int AbstractMail::createMbox(const QString&,const Folder*,const QString& delemit | |||
95 | 95 | ||
96 | QString AbstractMail::defaultLocalfolder() | 96 | QString AbstractMail::defaultLocalfolder() |
97 | { | 97 | { |
98 | QString f = getenv( "HOME" ); | 98 | QString f = getenv( "HOME" ); |
99 | f += "/Applications/opiemail/localmail"; | 99 | f += "/Applications/opiemail/localmail"; |
100 | return f; | 100 | return f; |
101 | } | 101 | } |
102 | 102 | ||
103 | /* temporary - will be removed when implemented in all classes */ | 103 | /* temporary - will be removed when implemented in all classes */ |
104 | void AbstractMail::deleteMails(const QString &,QList<RecMail> &) | 104 | void AbstractMail::deleteMails(const QString &,QList<RecMail> &) |
105 | { | 105 | { |
106 | } | 106 | } |
107 | |||
108 | void AbstractMail::mvcpAllMails(Folder*fromFolder,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) | ||
109 | { | ||
110 | QList<RecMail> t; | ||
111 | listMessages(fromFolder->getName(),t); | ||
112 | encodedString*st = 0; | ||
113 | while (t.count()>0) { | ||
114 | RecMail*r = t.at(0); | ||
115 | st = fetchRawBody(*r); | ||
116 | if (st) { | ||
117 | targetWrapper->storeMessage(st->Content(),st->Length(),targetFolder); | ||
118 | delete st; | ||
119 | } | ||
120 | t.removeFirst(); | ||
121 | } | ||
122 | if (moveit) { | ||
123 | deleteAllMail(fromFolder); | ||
124 | } | ||
125 | } | ||
diff --git a/noncore/net/mail/libmailwrapper/abstractmail.h b/noncore/net/mail/libmailwrapper/abstractmail.h index 15d83cb..8debaae 100644 --- a/noncore/net/mail/libmailwrapper/abstractmail.h +++ b/noncore/net/mail/libmailwrapper/abstractmail.h | |||
@@ -26,24 +26,26 @@ public: | |||
26 | virtual QString fetchTextPart(const RecMail&mail,const RecPart&part)=0; | 26 | virtual QString fetchTextPart(const RecMail&mail,const RecPart&part)=0; |
27 | virtual encodedString* fetchDecodedPart(const RecMail&mail,const RecPart&part)=0; | 27 | virtual encodedString* fetchDecodedPart(const RecMail&mail,const RecPart&part)=0; |
28 | virtual encodedString* fetchRawPart(const RecMail&mail,const RecPart&part)=0; | 28 | virtual encodedString* fetchRawPart(const RecMail&mail,const RecPart&part)=0; |
29 | virtual encodedString* fetchRawBody(const RecMail&mail)=0; | 29 | virtual encodedString* fetchRawBody(const RecMail&mail)=0; |
30 | 30 | ||
31 | virtual void deleteMail(const RecMail&mail)=0; | 31 | virtual void deleteMail(const RecMail&mail)=0; |
32 | virtual void answeredMail(const RecMail&mail)=0; | 32 | virtual void answeredMail(const RecMail&mail)=0; |
33 | virtual int deleteAllMail(const Folder*)=0; | 33 | virtual int deleteAllMail(const Folder*)=0; |
34 | virtual void deleteMails(const QString & FolderName,QList<RecMail> &target); | 34 | virtual void deleteMails(const QString & FolderName,QList<RecMail> &target); |
35 | virtual int deleteMbox(const Folder*)=0; | 35 | virtual int deleteMbox(const Folder*)=0; |
36 | virtual void storeMessage(const char*msg,size_t length, const QString&folder)=0; | 36 | virtual void storeMessage(const char*msg,size_t length, const QString&folder)=0; |
37 | 37 | ||
38 | virtual void mvcpAllMails(Folder*fromFolder,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); | ||
39 | |||
38 | virtual void cleanMimeCache(){}; | 40 | virtual void cleanMimeCache(){}; |
39 | /* mail box methods */ | 41 | /* mail box methods */ |
40 | /* parameter is the box to create. | 42 | /* parameter is the box to create. |
41 | * if the implementing subclass has prefixes, | 43 | * if the implementing subclass has prefixes, |
42 | * them has to be appended automatic. | 44 | * them has to be appended automatic. |
43 | */ | 45 | */ |
44 | virtual int createMbox(const QString&,const Folder*parentfolder=0,const QString& delemiter="/",bool getsubfolder=false); | 46 | virtual int createMbox(const QString&,const Folder*parentfolder=0,const QString& delemiter="/",bool getsubfolder=false); |
45 | virtual void logout()=0; | 47 | virtual void logout()=0; |
46 | 48 | ||
47 | static AbstractMail* getWrapper(IMAPaccount *a); | 49 | static AbstractMail* getWrapper(IMAPaccount *a); |
48 | static AbstractMail* getWrapper(POP3account *a); | 50 | static AbstractMail* getWrapper(POP3account *a); |
49 | /* mbox only! */ | 51 | /* mbox only! */ |
diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.cpp b/noncore/net/mail/libmailwrapper/imapwrapper.cpp index bb74de9..23c678b 100644 --- a/noncore/net/mail/libmailwrapper/imapwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/imapwrapper.cpp | |||
@@ -1000,21 +1000,52 @@ void IMAPwrapper::storeMessage(const char*msg,size_t length, const QString&folde | |||
1000 | if (r != MAILIMAP_NO_ERROR) { | 1000 | if (r != MAILIMAP_NO_ERROR) { |
1001 | Global::statusMessage("Error storing mail!"); | 1001 | Global::statusMessage("Error storing mail!"); |
1002 | } | 1002 | } |
1003 | } | 1003 | } |
1004 | 1004 | ||
1005 | const QString&IMAPwrapper::getType()const | 1005 | const QString&IMAPwrapper::getType()const |
1006 | { | 1006 | { |
1007 | return account->getType(); | 1007 | return account->getType(); |
1008 | } | 1008 | } |
1009 | 1009 | ||
1010 | const QString&IMAPwrapper::getName()const | 1010 | const QString&IMAPwrapper::getName()const |
1011 | { | 1011 | { |
1012 | qDebug("Get name: %s",account->getAccountName().latin1()); | ||
1012 | return account->getAccountName(); | 1013 | return account->getAccountName(); |
1013 | } | 1014 | } |
1014 | 1015 | ||
1015 | encodedString* IMAPwrapper::fetchRawBody(const RecMail&mail) | 1016 | encodedString* IMAPwrapper::fetchRawBody(const RecMail&mail) |
1016 | { | 1017 | { |
1017 | // dummy | 1018 | // dummy |
1018 | QValueList<int> path; | 1019 | QValueList<int> path; |
1019 | return fetchRawPart(mail,path,false); | 1020 | return fetchRawPart(mail,path,false); |
1020 | } | 1021 | } |
1022 | |||
1023 | void IMAPwrapper::mvcpAllMails(Folder*fromFolder,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) | ||
1024 | { | ||
1025 | qDebug("mvcp mail imap"); | ||
1026 | if (targetWrapper != this) { | ||
1027 | AbstractMail::mvcpAllMails(fromFolder,targetFolder,targetWrapper,moveit); | ||
1028 | qDebug("Using generic"); | ||
1029 | return; | ||
1030 | } | ||
1031 | qDebug("Using internal"); | ||
1032 | mailimap_set *set = 0; | ||
1033 | |||
1034 | int err = mailimap_select( m_imap, fromFolder->getName().latin1()); | ||
1035 | if ( err != MAILIMAP_NO_ERROR ) { | ||
1036 | Global::statusMessage(tr("error selecting mailbox: %1").arg(m_imap->imap_response)); | ||
1037 | return; | ||
1038 | } | ||
1039 | |||
1040 | int last = m_imap->imap_selection_info->sel_exists; | ||
1041 | set = mailimap_set_new_interval( 1, last ); | ||
1042 | err = mailimap_copy(m_imap,set,targetFolder.latin1()); | ||
1043 | if ( err != MAILIMAP_NO_ERROR ) { | ||
1044 | Global::statusMessage(tr("error copy mails: %1").arg(m_imap->imap_response)); | ||
1045 | return; | ||
1046 | } | ||
1047 | mailimap_set_free( set ); | ||
1048 | if (moveit) { | ||
1049 | deleteAllMail(fromFolder); | ||
1050 | } | ||
1051 | } | ||
diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.h b/noncore/net/mail/libmailwrapper/imapwrapper.h index b2bd7e9..07c6210 100644 --- a/noncore/net/mail/libmailwrapper/imapwrapper.h +++ b/noncore/net/mail/libmailwrapper/imapwrapper.h | |||
@@ -22,24 +22,25 @@ class IMAPwrapper : public AbstractMail | |||
22 | Q_OBJECT | 22 | Q_OBJECT |
23 | public: | 23 | public: |
24 | IMAPwrapper( IMAPaccount *a ); | 24 | IMAPwrapper( IMAPaccount *a ); |
25 | virtual ~IMAPwrapper(); | 25 | virtual ~IMAPwrapper(); |
26 | virtual QList<Folder>* listFolders(); | 26 | virtual QList<Folder>* listFolders(); |
27 | virtual void listMessages(const QString & mailbox,QList<RecMail>&target ); | 27 | virtual void listMessages(const QString & mailbox,QList<RecMail>&target ); |
28 | virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); | 28 | virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); |
29 | 29 | ||
30 | virtual void deleteMail(const RecMail&mail); | 30 | virtual void deleteMail(const RecMail&mail); |
31 | virtual void answeredMail(const RecMail&mail); | 31 | virtual void answeredMail(const RecMail&mail); |
32 | virtual int deleteAllMail(const Folder*folder); | 32 | virtual int deleteAllMail(const Folder*folder); |
33 | virtual void storeMessage(const char*msg,size_t length, const QString&folder); | 33 | virtual void storeMessage(const char*msg,size_t length, const QString&folder); |
34 | virtual void mvcpAllMails(Folder*fromFolder,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); | ||
34 | 35 | ||
35 | virtual RecBody fetchBody(const RecMail&mail); | 36 | virtual RecBody fetchBody(const RecMail&mail); |
36 | virtual QString fetchTextPart(const RecMail&mail,const RecPart&part); | 37 | virtual QString fetchTextPart(const RecMail&mail,const RecPart&part); |
37 | virtual encodedString* fetchDecodedPart(const RecMail&mail,const RecPart&part); | 38 | virtual encodedString* fetchDecodedPart(const RecMail&mail,const RecPart&part); |
38 | virtual encodedString* fetchRawPart(const RecMail&mail,const RecPart&part); | 39 | virtual encodedString* fetchRawPart(const RecMail&mail,const RecPart&part); |
39 | virtual encodedString* fetchRawBody(const RecMail&mail); | 40 | virtual encodedString* fetchRawBody(const RecMail&mail); |
40 | 41 | ||
41 | virtual int createMbox(const QString&,const Folder*parentfolder=0,const QString& delemiter="/",bool getsubfolder=false); | 42 | virtual int createMbox(const QString&,const Folder*parentfolder=0,const QString& delemiter="/",bool getsubfolder=false); |
42 | virtual int deleteMbox(const Folder*folder); | 43 | virtual int deleteMbox(const Folder*folder); |
43 | 44 | ||
44 | static void imap_progress( size_t current, size_t maximum ); | 45 | static void imap_progress( size_t current, size_t maximum ); |
45 | 46 | ||