public async Task <IMailDistributorState> SendMail(DistributorData data, IMailDistributorState state) { try { var mailMessage = new MimeMessage(); mailMessage.To.Add(new MailboxAddress(data.MailInfo.ToName, data.MailInfo.ToAddress)); mailMessage.From.Add(new MailboxAddress(data.MailInfo.FromName, data.MailInfo.FromAddress)); mailMessage.Subject = data.MailInfo.Subject; var mailMessageBody = new TextPart(TextFormat.Html); mailMessageBody.Content = new MimeContent(data.DocumentResult.Stream); mailMessage.Body = mailMessageBody; try { await(state as State).SmtpClient.SendAsync(mailMessage); } catch (Exception e) { return(new SendMailStatus() { Success = false, ErrorText = e.Message }); } return(SendMailStatus.Ok()); } finally { await data.DocumentResult.Stream.DisposeAsync(); } }
public async Task <IMailDistributorState> SendMail(DistributorData data, IMailDistributorState state) { var mailMessage = new MimeMessage(); mailMessage.To.Add(new MailboxAddress(data.MailInfo.ToName, data.MailInfo.ToAddress)); mailMessage.From.Add(new MailboxAddress(data.MailInfo.FromName, data.MailInfo.FromAddress)); mailMessage.Subject = data.MailInfo.Subject; var mailMessageBody = new TextPart(TextFormat.Html); mailMessageBody.Content = new MimeContent(data.DocumentResult.Stream); mailMessage.Body = mailMessageBody; await using (var targetStream = new FileStream(Path.Combine(_workingDirectory, $"mail-to-{data.MailInfo.ToAddress}.mime"), FileMode.Create)) { await mailMessage.WriteToAsync(targetStream); } return(SendMailStatus.Ok()); }
public async Task <IMailDistributorState> EndSendMail(IMailDistributorState state) { await Task.CompletedTask; return(SendMailStatus.Ok()); }
public async Task <IMailDistributorState> BeginSendMail() { await Task.CompletedTask; return(SendMailStatus.Ok()); }
public async Task <IMailDistributorState> EndSendMail(IMailDistributorState state) { await(state as State).SmtpClient.DisconnectAsync(true); (state as State).SmtpClient.Dispose(); return(SendMailStatus.Ok()); }