diff --git a/messagecomposer/autotests/composertest.cpp b/messagecomposer/autotests/composertest.cpp --- a/messagecomposer/autotests/composertest.cpp +++ b/messagecomposer/autotests/composertest.cpp @@ -51,7 +51,6 @@ QVERIFY(composer->exec()); QCOMPARE(composer->resultMessages().size(), 1); KMime::Message::Ptr message = composer->resultMessages().first(); - qDebug() << message->encodedContent(); delete composer; composer = Q_NULLPTR; @@ -121,19 +120,18 @@ QVERIFY(composer->exec()); QCOMPARE(composer->resultMessages().size(), 1); const KMime::Message::Ptr message = composer->resultMessages().first(); - qDebug() << message->encodedContent(); message->assemble(); message->parse(); QCOMPARE(message->bcc(false)->displayNames().size(), 1); QCOMPARE(message->to(false)->displayNames().size(), 1); QCOMPARE(message->cc(false)->displayNames().size(), 1); QCOMPARE(message->from(false)->displayNames().size(), 1); QCOMPARE(message->replyTo(false)->displayNames().size(), 1); - QCOMPARE(message->from()->displayNames().first().toUtf8(), fromDisplayName.toUtf8()); - QCOMPARE(message->to()->displayNames().first().toUtf8(), toDisplayName.toUtf8()); - QCOMPARE(message->cc()->displayNames().first().toUtf8(), ccDisplayName.toUtf8()); - QCOMPARE(message->bcc()->displayNames().first().toUtf8(), bccDisplayName.toUtf8()); - QCOMPARE(message->replyTo()->displayNames().first().toUtf8(), replyToDisplayName.toUtf8()); + QCOMPARE(message->from()->displayNames().first(), fromDisplayName); + QCOMPARE(message->to()->displayNames().first(), toDisplayName); + QCOMPARE(message->cc()->displayNames().first(), ccDisplayName); + QCOMPARE(message->bcc()->displayNames().first(), bccDisplayName); + QCOMPARE(message->replyTo()->displayNames().first(), replyToDisplayName); delete composer; composer = Q_NULLPTR; } diff --git a/messagecomposer/src/job/skeletonmessagejob.cpp b/messagecomposer/src/job/skeletonmessagejob.cpp --- a/messagecomposer/src/job/skeletonmessagejob.cpp +++ b/messagecomposer/src/job/skeletonmessagejob.cpp @@ -71,49 +71,64 @@ KMime::Headers::From *from = new KMime::Headers::From; KMime::Types::Mailbox address; address.fromUnicodeString(KEmailAddress::normalizeAddressesAndEncodeIdn(infoPart->from())); - from->addAddress(address); + from->fromUnicodeString(QString::fromLatin1(address.as7BitString("utf-8")), "utf-8"); message->setHeader(from); } // To: { KMime::Headers::To *to = new KMime::Headers::To; + QByteArray sTo; foreach (const QString &a, infoPart->to()) { KMime::Types::Mailbox address; address.fromUnicodeString(KEmailAddress::normalizeAddressesAndEncodeIdn(a)); - to->addAddress(address); + if (!sTo.isEmpty()) { + sTo.append(","); + } + sTo.append(address.as7BitString("utf-8")); } + to->fromUnicodeString(QString::fromLatin1(sTo),"utf-8"); message->setHeader(to); } // Reply To: if (!infoPart->replyTo().isEmpty()) { KMime::Headers::ReplyTo *replyTo = new KMime::Headers::ReplyTo; KMime::Types::Mailbox address; address.fromUnicodeString(KEmailAddress::normalizeAddressesAndEncodeIdn(infoPart->replyTo())); - replyTo->addAddress(address); + replyTo->fromUnicodeString(QString::fromLatin1(address.as7BitString("utf-8")), "utf-8"); message->setHeader(replyTo); } // Cc: { KMime::Headers::Cc *cc = new KMime::Headers::Cc; + QByteArray sCc; foreach (const QString &a, infoPart->cc()) { KMime::Types::Mailbox address; address.fromUnicodeString(KEmailAddress::normalizeAddressesAndEncodeIdn(a)); - cc->addAddress(address); + if (!sCc.isEmpty()) { + sCc.append(","); + } + sCc.append(address.as7BitString("utf-8")); } + cc->fromUnicodeString(QString::fromLatin1(sCc),"utf-8"); message->setHeader(cc); } // Bcc: { KMime::Headers::Bcc *bcc = new KMime::Headers::Bcc; + QByteArray sBcc; foreach (const QString &a, infoPart->bcc()) { KMime::Types::Mailbox address; address.fromUnicodeString(KEmailAddress::normalizeAddressesAndEncodeIdn(a)); - bcc->addAddress(address); + if (!sBcc.isEmpty()) { + sBcc.append(","); + } + sBcc.append(address.as7BitString("utf-8")); } + bcc->fromUnicodeString(QString::fromLatin1(sBcc),"utf-8"); message->setHeader(bcc); }