diff options
Diffstat (limited to 'src/async/smtp/MCSMTPSendWithDataOperation.cc')
-rw-r--r-- | src/async/smtp/MCSMTPSendWithDataOperation.cc | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/src/async/smtp/MCSMTPSendWithDataOperation.cc b/src/async/smtp/MCSMTPSendWithDataOperation.cc index bb2c5ea9..03f6a530 100644 --- a/src/async/smtp/MCSMTPSendWithDataOperation.cc +++ b/src/async/smtp/MCSMTPSendWithDataOperation.cc @@ -16,10 +16,14 @@ using namespace mailcore; SMTPSendWithDataOperation::SMTPSendWithDataOperation() { mMessageData = NULL; + mFrom = NULL; + mRecipients = NULL; } SMTPSendWithDataOperation::~SMTPSendWithDataOperation() { + MC_SAFE_RELEASE(mFrom); + MC_SAFE_RELEASE(mRecipients); MC_SAFE_RELEASE(mMessageData); } @@ -33,9 +37,34 @@ Data * SMTPSendWithDataOperation::messageData() return mMessageData; } +void SMTPSendWithDataOperation::setFrom(Address * from) +{ + MC_SAFE_REPLACE_COPY(Address, mFrom, from); +} + +Address * SMTPSendWithDataOperation::from() +{ + return mFrom; +} + +void SMTPSendWithDataOperation::setRecipients(Array * recipients) +{ + MC_SAFE_REPLACE_COPY(Array, mRecipients, recipients); +} + +Array * SMTPSendWithDataOperation::recipients() +{ + return mRecipients; +} + void SMTPSendWithDataOperation::main() { ErrorCode error; - session()->session()->sendMessage(mMessageData, this, &error); + if ((mFrom != NULL) && (mRecipients != NULL)) { + session()->session()->sendMessage(mFrom, mRecipients, mMessageData, this, &error); + } + else { + session()->session()->sendMessage(mMessageData, this, &error); + } setError(error); } |