diff options
-rw-r--r-- | src/core/abstract/MCMessageConstants.h | 2 | ||||
-rw-r--r-- | src/core/smtp/MCSMTPSession.cc | 9 | ||||
-rw-r--r-- | src/objc/abstract/MCOConstants.h | 4 |
3 files changed, 15 insertions, 0 deletions
diff --git a/src/core/abstract/MCMessageConstants.h b/src/core/abstract/MCMessageConstants.h index 30ce0efc..f536c59e 100644 --- a/src/core/abstract/MCMessageConstants.h +++ b/src/core/abstract/MCMessageConstants.h @@ -209,6 +209,8 @@ namespace mailcore { ErrorInvalidAccount, ErrorFile, ErrorCompression, + ErrorNoSender, + ErrorNoRecipient, }; enum PartType { diff --git a/src/core/smtp/MCSMTPSession.cc b/src/core/smtp/MCSMTPSession.cc index 78eb4113..4b31fd6d 100644 --- a/src/core/smtp/MCSMTPSession.cc +++ b/src/core/smtp/MCSMTPSession.cc @@ -579,6 +579,15 @@ void SMTPSession::sendMessage(Address * from, Array * recipients, Data * message clist * address_list; int r; + if (from == NULL) { + * pError = ErrorNoSender; + return; + } + if ((recipients == NULL) || (recipients->count() == 0)) { + * pError = ErrorNoRecipient; + return; + } + messageData = dataWithFilteredBcc(messageData); mProgressCallback = callback; diff --git a/src/objc/abstract/MCOConstants.h b/src/objc/abstract/MCOConstants.h index 0e13f986..b2516754 100644 --- a/src/objc/abstract/MCOConstants.h +++ b/src/objc/abstract/MCOConstants.h @@ -330,6 +330,10 @@ typedef enum { MCOErrorInvalidAccount, /** IMAP: Error when trying to enable compression.*/ MCOErrorCompression, + /** SMTP: Error when no sender has been specified.*/ + MCOErrorNoSender, + /** SMTP: Error when no recipient has been specified.*/ + MCOErrorNoRecipient, /** The count of all errors */ MCOErrorCodeCount, } MCOErrorCode; |