public void Send(string to, string subject, string html, string from = null) { // create message var email = new MimeMessage(); email.From.Add(MailboxAddress.Parse(from ?? _appSettings.EmailFrom)); email.To.Add(MailboxAddress.Parse(to)); email.Subject = subject; email.Body = new TextPart(TextFormat.Html) { Text = html }; // send email _smtpClient.Connect(_appSettings.SmtpHost, _appSettings.SmtpPort, _appSettings.SmtpTls ? SecureSocketOptions.StartTls : SecureSocketOptions.Auto); try { if (!string.IsNullOrWhiteSpace(_appSettings.SmtpUser)) { _smtpClient.Authenticate(_appSettings.SmtpUser, _appSettings.SmtpPass); } _smtpClient.Send(email); } finally { _smtpClient.Disconnect(true); } }
public async Task SendEmailAsync(MailRequest mailRequest) { var email = new MimeMessage(); email.Sender = MailboxAddress.Parse(_mailSettings.Mail); email.To.Add(MailboxAddress.Parse(mailRequest.ToEmail)); email.Subject = mailRequest.Subject; var builder = new BodyBuilder(); if (mailRequest.Attachments != null) { byte[] fileBytes; foreach (var file in mailRequest.Attachments) { if (file.Length > 0) { using (var ms = new MemoryStream()) { file.CopyTo(ms); fileBytes = ms.ToArray(); } builder.Attachments.Add(file.FileName, fileBytes, ContentType.Parse(file.ContentType)); } } } builder.HtmlBody = mailRequest.Body; email.Body = builder.ToMessageBody(); //using var smtp = new SmtpClient(); _smtpClient.Connect(_mailSettings.Host, _mailSettings.Port, SecureSocketOptions.StartTls); _smtpClient.Authenticate(_mailSettings.Mail, _mailSettings.Password); await _smtpClient.SendAsync(email); _smtpClient.Disconnect(true); }
public void The_server_details_are_correct() { // When emailService.SendEmail(EmailTestHelper.GetDefaultEmail()); // Then A.CallTo(() => smtpClient.Connect( "smtp.example.com", 25, SecureSocketOptions.Auto, default ) ) .MustHaveHappened(); }
public void Connect() { client.ServerCertificateValidationCallback = (s, c, h, e) => true; client.Connect(this.emailOptions.Smtp.Host, this.emailOptions.Smtp.Port, this.emailOptions.Smtp.EnableSSL); client.Authenticate(this.emailOptions.Smtp.Username, this.emailOptions.Smtp.Password); }