This is a convenient email sender package that allows you to customize email message templates.
$ dotnet add package Ansely.Utility.EmailSender.Core// 创建EmailSender实例并配置相关设置
IEmailSender sender = new EmailSender(new EmailSenderOptions
{
FromAddr = "xxx@xxx.com", // 发送源地址
Secret = "xxx", // 邮件服务器密钥
Host = "xxx" // 邮件服务器地址
});
// 创建内置邮件模板,传入邮件显示名称、邮件标题以及邮件内容
var tmp = new EmailTemplate("fromDisplayName", "subject", "body");
// 发送目的地址
var list = new List<string>
{
"xxx@xxx.com"
};
// 发送
var res = sender.Send(tmp, list);
if(res.Successed)
{
Console.WriteLine("Successful!");
}
else
{
foreach(var i in res.Errors)
{
Console.WriteLine(i.Description);
}
}
AbstractEmailTemplate 抽象类AbstractEmailTemplate 抽象类中还定义了一个 MailMessage 类型的属性,有关更多邮件消息的配置可自定义实现public class CustomerEmailTemplate : AbstractEmailTemplate
{
public CustomerEmailTemplate()
{
// Do something...
this.MailMessage.IsBodyHtml = true;
}
public override string? FromDisplayName { get; protected set; }
= "xxx";
public override string? Subject { get; protected set; }
= "xxx";
public override string? Body { get; protected set; }
= "xxx";
}
IEmailSender 对象var builder = WebApplication.CreateBuilder(args);
builder.Services.AddEmailSender(options =>
{
options.Host = builder.Configuration["Email:Host"];
options.Secret = builder.Configuration["Email:Secret"];
options.FromAddr = builder.Configuration["Email:FromAddr"];
});
public class HomeController : Controller
{
private readonly IEmailSender emailSender;
public HomeController(IEmailSender emailSender)
{
this.emailSender = emailSender;
}
}