From 75e4eaa8e72db697cd6cb000a4252de4fa80873d Mon Sep 17 00:00:00 2001 From: Michael Haeckel Date: Sun, 14 Oct 2001 15:31:26 +0000 Subject: [PATCH] Do the header removing no sending stuff in a clean way. svn path=/trunk/kdenetwork/kmail/; revision=117877 --- kmmessage.cpp | 13 +++++++++++++ kmmessage.h | 5 +++++ kmsender.cpp | 22 +++------------------- 3 files changed, 21 insertions(+), 19 deletions(-) diff --git a/kmmessage.cpp b/kmmessage.cpp index 19e0c4b7f..71c5dd376 100644 --- a/kmmessage.cpp +++ b/kmmessage.cpp @@ -145,6 +145,19 @@ QCString KMMessage::asString(void) } +//----------------------------------------------------------------------------- +QCString KMMessage::asSendableString() +{ + KMMessage msg; + msg.fromString(asString()); + msg.removeHeaderField("Status"); + msg.removeHeaderField("X-Status"); + msg.removeHeaderField("X-KMail-Transport"); + msg.removeHeaderField("X-KMail-Identity"); + msg.removeHeaderField("Bcc"); + return msg.asString(); +} + //----------------------------------------------------------------------------- void KMMessage::setStatusFields(void) { diff --git a/kmmessage.h b/kmmessage.h index 499653d46..dcf84f5e6 100644 --- a/kmmessage.h +++ b/kmmessage.h @@ -92,6 +92,11 @@ public: */ virtual QCString asString(void); + /** + * Return the message contents besides the headers that should not be sent. + */ + virtual QCString asSendableString(); + /** Return header as string. */ virtual QString headerAsString(void) const; diff --git a/kmsender.cpp b/kmsender.cpp index 86b49756a..0f52a6b41 100644 --- a/kmsender.cpp +++ b/kmsender.cpp @@ -340,12 +340,6 @@ void KMSender::doSendMsgAux() { mSendProcStarted = TRUE; - // remove header fields that shall not be included in sending - mCurrentMsg->removeHeaderField("Status"); - mCurrentMsg->removeHeaderField("X-Status"); - mCurrentMsg->removeHeaderField("X-KMail-Transport"); - mCurrentMsg->removeHeaderField("X-KMail-Identity"); - // start sending the current message mSendProc->preSendInit(); @@ -746,19 +740,11 @@ bool KMSendSendmail::send(KMMessage* aMsg) mMailerProc->clearArguments(); *mMailerProc << mSender->transportInfo()->host; *mMailerProc << "-i"; - aMsg->removeHeaderField("X-KMail-Identity"); addRecipients(aMsg->headerAddrField("To")); if (!aMsg->cc().isEmpty()) addRecipients(aMsg->headerAddrField("Cc")); + if (!aMsg->bcc().isEmpty()) addRecipients(aMsg->headerAddrField("Bcc")); - bccStr = aMsg->bcc(); - if (!bccStr.isEmpty()) - { - addRecipients(aMsg->headerAddrField("Bcc")); - aMsg->removeHeaderField("Bcc"); - } - - mMsgStr = aMsg->asString(); - if (!bccStr.isEmpty()) aMsg->setBcc(bccStr); + mMsgStr = aMsg->asSendableString(); if (!mMailerProc->start(KProcess::NotifyOnExit,KProcess::All)) { @@ -874,7 +860,6 @@ bool KMSendSMTP::send(KMMessage *aMsg) { mQueryField = "&bcc="; if (!addRecipients(aMsg->headerAddrField("Bcc"))) return FALSE; - aMsg->removeHeaderField("Bcc"); } if(!aMsg->subject().isEmpty()) @@ -925,8 +910,7 @@ bool KMSendSMTP::send(KMMessage *aMsg) mQuery = ""; - mMessage = prepareStr(aMsg->asString(), TRUE); - if (!bccStr.isEmpty()) aMsg->setBcc(bccStr); + mMessage = prepareStr(aMsg->asSendableString(), TRUE); if ((mJob = KIO::put(destination, -1, false, false, false))) {