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); }
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); }