1.工具
包
VS2022
2.过程
1)创建项目api
引用包
2)设置appsettings
"EmailOptions": {
"SenderName": "系统邮件", //发送者名称,可在代码中重新替换
"FromAddress": "xxxxxx@", //发件者邮箱
"ToAddress": "xxxx@", //接收人邮箱
"Host": "smtp.", //主机
"Port": 465, //端口 阿里云默认25端口不开放,需要使用SSL的465端口
"UserName": "xxxxx@", //发件邮箱账号
"Password": "xxxxxx" //发件邮箱授权码(授权码是用于登录第三方邮件客户端的专用密码)
}
3)获取163的授权码
登录-进入设置-开启(IMAP/SMTP服务、POP3/SMTP服务)-这个时候就有 了授权码
4)初始化
using ;
using ;
using ;
var builder = (args);
// Add services to the container.
();
<EmailOptions>(("EmailOptions"));
(optionBuilder =>
{
(new MailKitOptions()
{
//get options from
Server = <string>("EmailOptions:Host"),
Port = <int>("EmailOptions:Port"),
SenderName = <string>("EmailOptions:SenderName"),
SenderEmail = <string>("EmailOptions:FromAddress"),
// can be optional with no authentication
Account = <string>("EmailOptions:UserName"),
Password = <string>("EmailOptions:Password"),
// enable ssl or tls
Security = true
});
});
var app = ();
// Configure the HTTP request pipeline.
();
();
();
5)创建类
/// <summary>
/// 配置文件Dto
/// </summary>
public class EmailOptions
{
public string FromAddress { get; set; }
public string ToAddress { get; set; }
public string Host { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
}
6)api调用
private readonly EmailOptions options;
private readonly IEmailService _EmailService;
private static readonly string[] Summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
private readonly ILogger<WeatherForecastController> _logger;
public WeatherForecastController(ILogger<WeatherForecastController> logger, IOptions<EmailOptions> options, IEmailService emailService)
{
_logger = logger;
= ;
_EmailService = emailService;
}
[HttpGet]
public async Task<IEnumerable<WeatherForecast>> Get()
{
//设置发送人的邮件地址和名称,在接收人接收到邮件提示时会显示该信息
var sendInfo = new SenderInfo
{
SenderEmail = ,
SenderName = "发送者名称",
};
await _EmailService.SendAsync(, "标题名", "邮件内容", false, sender: sendInfo);
return (1, 5).Select(index => new WeatherForecast
{
Date = (index),
TemperatureC = (-20, 55),
Summary = Summaries[()]
})
.ToArray();
}
7)接收成功
8)源码:
net6发送邮件demo-C#文档类资源-****下载