没有合适的资源?快使用搜索试试~ 我知道了~
C#使用System.Net邮件发送功能踩过的坑
1 下载量 81 浏览量
2020-12-16
20:01:27
上传
评论
收藏 588KB PDF 举报
温馨提示
试读
5页
1.EazyEmail邮件发送类库 Net 类库自带了邮件发送功能。笔者对该类库,从使用的角度进行了二次封装,nuget上可搜索EazyEmail,注入容器时通过委托来获得邮箱服务器的配置地址以及发送地址直接调用send方法即可。 容器注入代码。这里定义的委托,每次发送之前可以去数据库拿邮箱配置数据跟发送账户,笔者自己用的时候是通过Redis缓存 存取数据,因为像断网断电这种可能是批量出现的,需要批量发送告警邮件,所以放Redis里,然后Redis通过rdb功能设置每秒每个键变化就持久化的策略,没毛病。 services.AddEmailKit(() => {
资源推荐
资源详情
资源评论
C#使用使用System.Net邮件发送功能踩过的坑邮件发送功能踩过的坑
1.EazyEmail邮件发送类库邮件发送类库
Net 类库自带了邮件发送功能。笔者对该类库,从使用的角度进行了二次封装,nuget上可搜索EazyEmail,注入容器时通过委托来获得邮箱服务器的配置地址以及发送地址直接调用send方法即可。
容器注入代码。这里定义的委托,每次发送之前可以去数据库拿邮箱配置数据跟发送账户,笔者自己用的时候是通过Redis缓存 存取数据,因为像断网断电这种可能是批量出现的,需要批量发送告警邮
件,所以放Redis里,然后Redis通过rdb功能设置每秒每个键变化就持久化的策略,没毛病。
services.AddEmailKit(() =>
{
EmailConfig emailConfig = new EmailConfig( );
#region 163网易邮件发送
emailConfig.EmailSmtpAddress = "smtp.163.com";
emailConfig.EmalHostPort = 587;
emailConfig.SendEmailAccount = "13737732703@163.com";
emailConfig.SendEmailPassWord = "******";
#endregion
#region qq 邮件发送
// emailConfig.EmailSmtpAddress = "smtp.qq.com";
// emailConfig.EmalHostPort = 587;
// emailConfig.SendEmailAccount = "87888397@qq.com";
// emailConfig.SendEmailPassWord = "*****";
#endregion
return emailConfig;
});
发送代码
MailBox QqMailbox = new MailBox();
QqMailbox.To = "87888397@qq.com";
QqMailbox.Body = "qqfadsfa邮箱测试";
QqMailbox.Cc = "935467953@qq.com";
QqMailbox.Subject = "qq邮fadfa箱测试";
emailQueueService.Enqueue(QqMailbox);
EazyEmail 内置阻塞队列,只要队列有邮件,里面开了一个线程会不断地发送,发送完毕会阻塞住,对应线程执行权也会回归线程池,一旦继续有邮件,线程自动唤醒会继续发送邮件。有关EazyEmail
的使用与设计思路有需要介绍可留言,可另起一篇作讲解,已经上传到nuget,可自行搜索EazyEmail去使用,使用非常方便。
EazyEmail类库源码 github地址需要者可自行下载
2.邮件发送授权码与邮件密码邮件发送授权码与邮件密码
第三方客户端登录邮件服务器来进行发送邮件,接收邮件已经极为普遍,某种场景下是代码里嵌入发送邮件信息,当然也包含了发送邮件的密码,近两年邮件服务商为了提高邮件的保密性,网易与qq
邮箱规定了第三方客户端发送邮件只能通过发送授权码。
网易发送授权码生成过程:
开启所需要的邮件发送服务跟接收服务
手机微信扫描发送二维码
资源评论
weixin_38690079
- 粉丝: 2
- 资源: 950
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功