ofbapi/OFBButte.Infrastructure/Email/EmailSender.cs

45 lines
1.3 KiB
C#

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.ionos.com", 587, false);
client.Authenticate("mail@ofbbutte.com", "@2014OfbPwd");
await client.SendAsync(mm);
client.Disconnect(true);
}
public void Dispose()
{
client.Dispose();
}
}
}