Exemple #1
0
        public async Task <MailSendMessageResponse> SendEmailAndReturnAsync(MailMessage mailMessage)
        {
            var response = new MailSendMessageResponse();

            try
            {
                var api = new MandrillApi(Options.ApiKey);

                var message = TransferToMandrillMessage(mailMessage);

                var mandrillResponse = (await api.Messages.SendAsync(message)).FirstOrDefault();

                if (mandrillResponse == null)
                {
                    response.Status       = MailSendMessageResponseStatus.Failed;
                    response.FailedReason = "No response";
                }
                else
                {
                    response.Id     = mandrillResponse.Id;
                    response.Status =
                        string.IsNullOrEmpty(mandrillResponse.RejectReason) ? MailSendMessageResponseStatus.Sent
                            : MailSendMessageResponseStatus.Failed;
                    response.FailedReason = mandrillResponse.RejectReason;
                }
            }
            catch (Exception e)
            {
                response.Status       = MailSendMessageResponseStatus.Failed;
                response.FailedReason = e.Message;
            }

            return(response);
        }
Exemple #2
0
        public async Task <MailSendMessageResponse> SendEmailAndReturnAsync(MailMessage mailMessage)
        {
            var response = new MailSendMessageResponse();

            try
            {
                await SendEmailAsync(mailMessage);

                response.Status = MailSendMessageResponseStatus.Sent;
            }
            catch (Exception e)
            {
                response.Status       = MailSendMessageResponseStatus.Failed;
                response.FailedReason = e.Message;
            }

            return(response);
        }