diff options
Diffstat (limited to 'src/async/smtp/MCSMTPSendWithDataOperation.cpp')
-rw-r--r-- | src/async/smtp/MCSMTPSendWithDataOperation.cpp | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/async/smtp/MCSMTPSendWithDataOperation.cpp b/src/async/smtp/MCSMTPSendWithDataOperation.cpp new file mode 100644 index 00000000..03f6a530 --- /dev/null +++ b/src/async/smtp/MCSMTPSendWithDataOperation.cpp @@ -0,0 +1,70 @@ +// +// SMTPSendWithDataOperation.cc +// mailcore2 +// +// Created by DINH Viêt Hoà on 1/10/13. +// Copyright (c) 2013 MailCore. All rights reserved. +// + +#include "MCSMTPSendWithDataOperation.h" + +#include "MCSMTPAsyncSession.h" +#include "MCSMTPSession.h" + +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); +} + +void SMTPSendWithDataOperation::setMessageData(Data * data) +{ + MC_SAFE_REPLACE_RETAIN(Data, mMessageData, data); +} + +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; + if ((mFrom != NULL) && (mRecipients != NULL)) { + session()->session()->sendMessage(mFrom, mRecipients, mMessageData, this, &error); + } + else { + session()->session()->sendMessage(mMessageData, this, &error); + } + setError(error); +} |