summaryrefslogtreecommitdiff
path: root/noncore/net/mail/abstractmail.cpp
Side-by-side diff
Diffstat (limited to 'noncore/net/mail/abstractmail.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/abstractmail.cpp28
1 files changed, 21 insertions, 7 deletions
diff --git a/noncore/net/mail/abstractmail.cpp b/noncore/net/mail/abstractmail.cpp
index 0bb2525..92a46f1 100644
--- a/noncore/net/mail/abstractmail.cpp
+++ b/noncore/net/mail/abstractmail.cpp
@@ -3,2 +3,3 @@
#include "pop3wrapper.h"
+#include "mailtypes.h"
@@ -18,7 +19,7 @@ AbstractMail* AbstractMail::getWrapper(POP3account *a)
-QString AbstractMail::decode_quoted_printable(const char*text)
+encodedString* AbstractMail::decode_String(const encodedString*text,const QString&enc)
{
+ qDebug("Decode string start");
char*result_text;
size_t index = 0;
- QString result = "";
/* reset for recursive use! */
@@ -26,8 +27,21 @@ QString AbstractMail::decode_quoted_printable(const char*text)
result_text = 0;
- int err = mailmime_quoted_printable_body_parse(text,strlen(text),
- &index,&result_text,&target_length,0);
- if (result_text) {
- result = result_text;
- free(result_text);
+ int mimetype = MAILMIME_MECHANISM_7BIT;
+ if (enc.lower()=="quoted-printable") {
+ mimetype = MAILMIME_MECHANISM_QUOTED_PRINTABLE;
+ } else if (enc.lower()=="base64") {
+ mimetype = MAILMIME_MECHANISM_BASE64;
+ } else if (enc.lower()=="8bit") {
+ mimetype = MAILMIME_MECHANISM_8BIT;
+ } else if (enc.lower()=="binary") {
+ mimetype = MAILMIME_MECHANISM_BINARY;
}
+
+ int err = mailmime_part_parse(text->Content(),text->Length(),&index,mimetype,
+ &result_text,&target_length);
+
+ encodedString* result = new encodedString();
+ if (err == MAILIMF_NO_ERROR) {
+ result->setContent(result_text,target_length);
+ }
+ qDebug("Decode string finished");
return result;