diff --git a/src/mimemessage.cpp b/src/mimemessage.cpp index 556132e..4c056d2 100644 --- a/src/mimemessage.cpp +++ b/src/mimemessage.cpp @@ -24,11 +24,12 @@ /* [1] Constructors and Destructors */ MimeMessage::MimeMessage(bool createAutoMimeContent) : + replyTo(Q_NULLPTR), hEncoding(MimePart::_8Bit) { if (createAutoMimeContent) this->content = new MimeMultiPart(); - + autoMimeContentCreated = createAutoMimeContent; } @@ -58,6 +59,10 @@ void MimeMessage::setContent(MimePart *content) { this->content = content; } +void MimeMessage::setReplyTo(EmailAddress* rto) { + replyTo = rto; +} + void MimeMessage::setSender(EmailAddress* e) { this->sender = e; @@ -135,6 +140,10 @@ const QList & MimeMessage::getRecipients(RecipientType type) cons } } +const EmailAddress* MimeMessage::getReplyTo() const { + return replyTo; +} + const QString & MimeMessage::getSubject() const { return subject; @@ -183,7 +192,7 @@ QString MimeMessage::toString() /* ---------------------------------- */ - /* ------- Recipients / To ---------- */ + /* ------- Recipients / To ---------- */ mime += "To:"; QList::iterator it; int i; for (i = 0, it = recipientsTo.begin(); it != recipientsTo.end(); ++it, ++i) @@ -253,9 +262,31 @@ QString MimeMessage::toString() default: mime += subject; } + mime += "\r\n"; + /* ---------------------------------- */ + + /* ---------- Reply-To -------------- */ + if (replyTo) { + mime += "Reply-To: "; + if (replyTo->getName() != "") + { + switch (hEncoding) + { + case MimePart::Base64: + mime += " =?utf-8?B?" + QByteArray().append(replyTo->getName()).toBase64() + "?="; + break; + case MimePart::QuotedPrintable: + mime += " =?utf-8?Q?" + QuotedPrintable::encode(QByteArray().append(replyTo->getName())).replace(' ', "_").replace(':',"=3A") + "?="; + break; + default: + mime += " " + replyTo->getName(); + } + } + mime += " <" + replyTo->getAddress() + ">\r\n"; + } + /* ---------------------------------- */ - mime += "\r\n"; mime += "MIME-Version: 1.0\r\n"; if (!mInReplyTo.isEmpty()) { diff --git a/src/mimemessage.h b/src/mimemessage.h index 36586f4..3b8fd7c 100644 --- a/src/mimemessage.h +++ b/src/mimemessage.h @@ -53,6 +53,7 @@ public: void addBcc(EmailAddress* rcpt); void setSubject(const QString & subject); void addPart(MimePart* part); + void setReplyTo(EmailAddress* rto); void setInReplyTo(const QString& inReplyTo); @@ -62,6 +63,7 @@ public: const QList & getRecipients(RecipientType type = To) const; const QString & getSubject() const; const QList & getParts() const; + const EmailAddress* getReplyTo() const; MimePart& getContent(); void setContent(MimePart *content); @@ -79,12 +81,13 @@ protected: /* [4] Protected members */ EmailAddress* sender; + EmailAddress* replyTo; QList recipientsTo, recipientsCc, recipientsBcc; QString subject; QString mInReplyTo; MimePart *content; bool autoMimeContentCreated; - + MimePart::Encoding hEncoding; /* [4] --- */