using MailKit.Net.Smtp; using MimeKit; using OFBButte.Application.Email; using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; namespace OFBButte.Infrastructure.Email { public class EmailSender : IEmailSender, IDisposable { private readonly SmtpClient client; private readonly bool isTest; public EmailSender(bool isTest = true) { this.isTest = isTest; client = new SmtpClient(); } public async Task Send(EmailMessage message) { message.SetBodyFromTemplate(isTest); var mm = new MimeMessage(); mm.From.Add(new MailboxAddress(message.From, message.From)); mm.To.Add(new MailboxAddress(message.To, message.To)); mm.Subject = message.Subject; var bodyBuilder = new BodyBuilder(); bodyBuilder.HtmlBody = message.Body; mm.Body = bodyBuilder.ToMessageBody(); client.Connect("smtp.webfaction.com", 465, true); client.Authenticate("ofbcontact", "2014OfbPwd"); await client.SendAsync(mm); client.Disconnect(true); } public void Dispose() { client.Dispose(); } } }