45 lines
1.3 KiB
C#
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("app@ofbbutte.com", "(app&email*sender)Q1");
|
|
await client.SendAsync(mm);
|
|
client.Disconnect(true);
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
client.Dispose();
|
|
}
|
|
}
|
|
}
|