summaryrefslogtreecommitdiff
path: root/noncore/net/mail/libmailwrapper
Unidiff
Diffstat (limited to 'noncore/net/mail/libmailwrapper') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/libmailwrapper/pop3wrapper.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
index ec4dcd2..cceb22e 100644
--- a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
@@ -30,41 +30,41 @@ POP3wrapper::~POP3wrapper()
30} 30}
31 31
32void POP3wrapper::pop3_progress( size_t current, size_t maximum ) 32void POP3wrapper::pop3_progress( size_t current, size_t maximum )
33{ 33{
34 qDebug( "POP3: %i of %i", current, maximum ); 34 qDebug( "POP3: %i of %i", current, maximum );
35} 35}
36 36
37RecBody POP3wrapper::fetchBody( const RecMail &mail ) 37RecBody POP3wrapper::fetchBody( const RecMail &mail )
38{ 38{
39 int err = MAILPOP3_NO_ERROR; 39 int err = MAILPOP3_NO_ERROR;
40 char *message = 0; 40 char *message = 0;
41 size_t length = 0; 41 size_t length = 0;
42 42
43 login(); 43 login();
44 if ( !m_pop3 ) { 44 if ( !m_pop3 ) {
45 return RecBody(); 45 return RecBody();
46 } 46 }
47 47
48 RecBody body; 48 RecBody body;
49 mailmessage * mailmsg; 49 mailmessage * mailmsg;
50 if (mail.Msgsize()>HARD_MSG_SIZE_LIMIT) { 50 if (mail.Msgsize()>HARD_MSG_SIZE_LIMIT) {
51 qDebug("Message to large: %i",mail.Msgsize()); 51 qDebug("Message to large: %i",mail.Msgsize());
52 return body; 52 return body;
53 } 53 }
54 54
55 QFile msg_cache(msgTempName); 55 QFile msg_cache(msgTempName);
56 56
57 cleanMimeCache(); 57 cleanMimeCache();
58 58
59 if (mail.getNumber()!=last_msg_id) { 59 if (mail.getNumber()!=last_msg_id) {
60 if (msg_cache.exists()) { 60 if (msg_cache.exists()) {
61 msg_cache.remove(); 61 msg_cache.remove();
62 } 62 }
63 msg_cache.open(IO_ReadWrite|IO_Truncate); 63 msg_cache.open(IO_ReadWrite|IO_Truncate);
64 last_msg_id = mail.getNumber(); 64 last_msg_id = mail.getNumber();
65 err = mailsession_get_message(m_folder->fld_session, mail.getNumber(), &mailmsg); 65 err = mailsession_get_message(m_folder->fld_session, mail.getNumber(), &mailmsg);
66 err = mailmessage_fetch(mailmsg,&message,&length); 66 err = mailmessage_fetch(mailmsg,&message,&length);
67 msg_cache.writeBlock(message,length); 67 msg_cache.writeBlock(message,length);
68 } else { 68 } else {
69 QString msg=""; 69 QString msg="";
70 msg_cache.open(IO_ReadOnly); 70 msg_cache.open(IO_ReadOnly);
@@ -79,29 +79,29 @@ RecBody POP3wrapper::fetchBody( const RecMail &mail )
79 memset(message,0,msg.length()+1); 79 memset(message,0,msg.length()+1);
80 memcpy(message,msg.latin1(),msg.length()); 80 memcpy(message,msg.latin1(),msg.length());
81 /* transform to libetpan stuff */ 81 /* transform to libetpan stuff */
82 mailmsg = mailmessage_new(); 82 mailmsg = mailmessage_new();
83 mailmessage_init(mailmsg, NULL, data_message_driver, 0, strlen(message)); 83 mailmessage_init(mailmsg, NULL, data_message_driver, 0, strlen(message));
84 generic_message_t * msg_data; 84 generic_message_t * msg_data;
85 msg_data = (generic_message_t *)mailmsg->msg_data; 85 msg_data = (generic_message_t *)mailmsg->msg_data;
86 msg_data->msg_fetched = 1; 86 msg_data->msg_fetched = 1;
87 msg_data->msg_message = message; 87 msg_data->msg_message = message;
88 msg_data->msg_length = strlen(message); 88 msg_data->msg_length = strlen(message);
89 } 89 }
90 body = parseMail(mailmsg); 90 body = parseMail(mailmsg);
91 91
92 /* clean up */ 92 /* clean up */
93 if (mailmsg) mailmessage_free(mailmsg); 93 if (mailmsg) mailmessage_free(mailmsg);
94 if (message) free(message); 94 if (message) free(message);
95 95
96 return body; 96 return body;
97} 97}
98 98
99void POP3wrapper::listMessages(const QString &, QList<RecMail> &target ) 99void POP3wrapper::listMessages(const QString &, QList<RecMail> &target )
100{ 100{
101 login(); 101 login();
102 if (!m_pop3) return; 102 if (!m_pop3) return;
103 uint32_t res_messages,res_recent,res_unseen; 103 uint32_t res_messages,res_recent,res_unseen;
104 mailsession_status_folder(m_folder->fld_session,"INBOX",&res_messages,&res_recent,&res_unseen); 104 mailsession_status_folder(m_folder->fld_session,"INBOX",&res_messages,&res_recent,&res_unseen);
105 parseList(target,m_folder->fld_session,"INBOX"); 105 parseList(target,m_folder->fld_session,"INBOX");
106 Global::statusMessage( tr("Mailbox contains %1 mail(s)").arg(res_messages)); 106 Global::statusMessage( tr("Mailbox contains %1 mail(s)").arg(res_messages));
107} 107}
@@ -144,24 +144,25 @@ void POP3wrapper::login()
144 (char*)user,(char*)pass,0,0,0); 144 (char*)user,(char*)pass,0,0,0);
145 145
146 m_folder = mailfolder_new(m_pop3, NULL, NULL); 146 m_folder = mailfolder_new(m_pop3, NULL, NULL);
147 147
148 if (m_folder==0) { 148 if (m_folder==0) {
149 Global::statusMessage(tr("Error initializing folder")); 149 Global::statusMessage(tr("Error initializing folder"));
150 mailstorage_free(m_pop3); 150 mailstorage_free(m_pop3);
151 m_pop3 = NULL; 151 m_pop3 = NULL;
152 return; 152 return;
153 } 153 }
154 err = mailfolder_connect(m_folder); 154 err = mailfolder_connect(m_folder);
155 if (err != MAIL_NO_ERROR) { 155 if (err != MAIL_NO_ERROR) {
156 qDebug( QString( "FEHLERNUMMER %1" ).arg( err ) );
156 Global::statusMessage(tr("Error initializing folder")); 157 Global::statusMessage(tr("Error initializing folder"));
157 mailfolder_free(m_folder); 158 mailfolder_free(m_folder);
158 m_folder = 0; 159 m_folder = 0;
159 mailstorage_free(m_pop3); 160 mailstorage_free(m_pop3);
160 m_pop3 = 0; 161 m_pop3 = 0;
161 } 162 }
162} 163}
163 164
164void POP3wrapper::logout() 165void POP3wrapper::logout()
165{ 166{
166 int err = MAILPOP3_NO_ERROR; 167 int err = MAILPOP3_NO_ERROR;
167 if ( m_pop3 == NULL ) return; 168 if ( m_pop3 == NULL ) return;
@@ -205,46 +206,46 @@ int POP3wrapper::deleteAllMail(const Folder*)
205 int err = mailsession_messages_number(m_folder->fld_session,NULL,&result); 206 int err = mailsession_messages_number(m_folder->fld_session,NULL,&result);
206 if (err != MAIL_NO_ERROR) { 207 if (err != MAIL_NO_ERROR) {
207 Global::statusMessage(tr("Error getting folder info")); 208 Global::statusMessage(tr("Error getting folder info"));
208 return 0; 209 return 0;
209 } 210 }
210 for (unsigned int i = 0; i < result; ++i) { 211 for (unsigned int i = 0; i < result; ++i) {
211 err = mailsession_remove_message(m_folder->fld_session,i+1); 212 err = mailsession_remove_message(m_folder->fld_session,i+1);
212 if (err != MAIL_NO_ERROR) { 213 if (err != MAIL_NO_ERROR) {
213 Global::statusMessage(tr("Error deleting mail %1").arg(i+1)); 214 Global::statusMessage(tr("Error deleting mail %1").arg(i+1));
214 res=0; 215 res=0;
215 } 216 }
216 break; 217 break;
217 } 218 }
218 return res; 219 return res;
219} 220}
220 221
221void POP3wrapper::statusFolder(folderStat&target_stat,const QString&) 222void POP3wrapper::statusFolder(folderStat&target_stat,const QString&)
222{ 223{
223 login(); 224 login();
224 target_stat.message_count = 0; 225 target_stat.message_count = 0;
225 target_stat.message_unseen = 0; 226 target_stat.message_unseen = 0;
226 target_stat.message_recent = 0; 227 target_stat.message_recent = 0;
227 if (!m_pop3) return; 228 if (!m_pop3) return;
228 int r = mailsession_status_folder(m_folder->fld_session,0,&target_stat.message_count, 229 int r = mailsession_status_folder(m_folder->fld_session,0,&target_stat.message_count,
229 &target_stat.message_recent,&target_stat.message_unseen); 230 &target_stat.message_recent,&target_stat.message_unseen);
230} 231}
231 232
232encodedString* POP3wrapper::fetchRawBody(const RecMail&mail) 233encodedString* POP3wrapper::fetchRawBody(const RecMail&mail)
233{ 234{
234 char*target=0; 235 char*target=0;
235 size_t length=0; 236 size_t length=0;
236 encodedString*res = 0; 237 encodedString*res = 0;
237 mailmessage * mailmsg = 0; 238 mailmessage * mailmsg = 0;
238 int err = mailsession_get_message(m_folder->fld_session, mail.getNumber(), &mailmsg); 239 int err = mailsession_get_message(m_folder->fld_session, mail.getNumber(), &mailmsg);
239 err = mailmessage_fetch(mailmsg,&target,&length); 240 err = mailmessage_fetch(mailmsg,&target,&length);
240 if (mailmsg) mailmessage_free(mailmsg); 241 if (mailmsg) mailmessage_free(mailmsg);
241 if (target) { 242 if (target) {
242 res = new encodedString(target,length); 243 res = new encodedString(target,length);
243 } 244 }
244 return res; 245 return res;
245} 246}
246 247
247const QString&POP3wrapper::getType()const 248const QString&POP3wrapper::getType()const
248{ 249{
249 return account->getType(); 250 return account->getType();
250} 251}