aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/async/smtp/MCSMTPSendWithDataOperation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/async/smtp/MCSMTPSendWithDataOperation.cpp')
-rw-r--r--src/async/smtp/MCSMTPSendWithDataOperation.cpp70
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);
+}