ABP VNext 利用QQ邮箱发送邮件
ABP VNext 利用QQ邮箱发送邮件
- 1.配置邮箱
- 1.1 设置
- 1.2账户
- 1.3 开启邮箱服务
- 1.4 生成授权码
- 2 默认的SmtpEmailSender发送邮件
- 2.1 生成数据库
- 2.2 添加一个后台任务执行发送邮件
- 2.3 服务中注入ISmtpEmailSender
- 2.4 在配置文件添加邮箱信息
- 3 集成MailKit发送邮件
- 3.1 添加包Volo.Abp.MailKit
- 3.2 Module文件配置依赖
- 3.3 服务中注入IEmailSender
- 3.4 在配置文件添加邮箱信息
1.配置邮箱
1.1 设置
1.2账户
1.3 开启邮箱服务
1.4 生成授权码
2 默认的SmtpEmailSender发送邮件
2.1 生成数据库
先修改数据库配置文件,执行迁移 ,不然项目启动不起来
2.2 添加一个后台任务执行发送邮件
Module文件的OnApplicationInitialization方法:
public override void OnApplicationInitialization(ApplicationInitializationContext context){......#region 后台服务context.AddBackgroundWorkerAsync<MailWorker>();#endregion}
2.3 服务中注入ISmtpEmailSender
public class MailWorker : AsyncPeriodicBackgroundWorkerBase{private readonly ISmtpEmailSender _emailSender;private readonly ISettingEncryptionService _settingEncryptionService;private readonly ISettingDefinitionManager settingDefinitionManager;public MailWorker(AbpAsyncTimer timer,IServiceScopeFactory serviceScopeFactory, ISmtpEmailSender emailSender, ISettingEncryptionService settingEncryptionService, ISettingDefinitionManager settingDefinitionManager) : base(timer,serviceScopeFactory){Timer.Period = 4000; //4s_emailSender = emailSender;_settingEncryptionService = settingEncryptionService;this.settingDefinitionManager = settingDefinitionManager;}protected async override Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext){var setting = settingDefinitionManager.Get(EmailSettingNames.Smtp.Password);var ss = _settingEncryptionService.Encrypt(setting, "zuqdlkgeyiyobbcd");Logger.LogInformation("Starting: sending...");await _emailSender.SendAsync("***@foxmail.com", "测试发送邮件", "how are you?");Logger.LogInformation("Completed: ending...");}}
2.4 在配置文件添加邮箱信息
{"App": {"SelfUrl": "https://localhost:44370"},"ConnectionStrings": {"Default": "Server=.;Database=SmtpEmailDemo;Uid=sa;Pwd=qwe123!;TrustServerCertificate=true"},"Settings": {"Abp.Mailing.Smtp.Host": "smtp.qq.com","Abp.Mailing.Smtp.Port": "587","Abp.Mailing.Smtp.UserName": "***@qq.com","Abp.Mailing.Smtp.Password": "zuqdlkgeyiyobbcd","Abp.Mailing.Smtp.Domain": "","Abp.Mailing.Smtp.EnableSsl": "true","Abp.Mailing.Smtp.UseDefaultCredentials": "false","Abp.Mailing.DefaultFromAddress": "***@qq.com","Abp.Mailing.DefaultFromDisplayName": "***@qq.com"},"StringEncryption": {"DefaultPassPhrase": "Yslb62n5falmPABy"}
}
注意端口号是587 密码不用自己去加密,直接填写邮箱授权码就行,UseDefaultCredentials为false
3 集成MailKit发送邮件
重复2.1,2.2步骤
3.1 添加包Volo.Abp.MailKit
3.2 Module文件配置依赖
typeof(AbpMailKitModule)
3.3 服务中注入IEmailSender
public class MailWorker : AsyncPeriodicBackgroundWorkerBase{private readonly IEmailSender _emailSender;public MailWorker(AbpAsyncTimer timer,IServiceScopeFactory serviceScopeFactory, IEmailSender emailSender) : base(timer,serviceScopeFactory){Timer.Period = 4000; //4s_emailSender = emailSender; }protected async override Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext){Logger.LogInformation("Start: starting...");await _emailSender.SendAsync("***@foxmail.com", "测试发送邮件", "how are you?");Logger.LogInformation("Completed: ending...");}}
3.4 在配置文件添加邮箱信息
{"App": {"SelfUrl": "https://localhost:44373"},"ConnectionStrings": {"Default": "Server=.;Database=MailTest;Uid=sa;Pwd=qwe123!;TrustServerCertificate=true"},"Settings": {"Abp.Mailing.Smtp.Host": "smtp.qq.com","Abp.Mailing.Smtp.Port": "465","Abp.Mailing.Smtp.UserName": "***@qq.com","Abp.Mailing.Smtp.Password": "zuqdlkgeyiyobbcd","Abp.Mailing.Smtp.Domain": "","Abp.Mailing.Smtp.EnableSsl": "true","Abp.Mailing.Smtp.UseDefaultCredentials": "false","Abp.Mailing.DefaultFromAddress": "***@qq.com","Abp.Mailing.DefaultFromDisplayName": "***@qq.com"},"StringEncryption": {"DefaultPassPhrase": "sSMpfXfpBMcXS9Iz"}
}
注意端口号是465 密码不用自己去加密,直接填写邮箱授权码就行,UseDefaultCredentials为false
ABP VNext 利用QQ邮箱发送邮件相关推荐
- php模拟登录qq邮箱_PHP 利用QQ邮箱发送邮件的实现
这篇文章主要介绍了关于PHP 利用QQ邮箱发送邮件的实现,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下在 PHP 应用开发中,往往需要验证用户邮箱.发送消息通知,而使用 PHP 内置的 ...
- TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)
在 PHP 应用开发中,往往需要验证用户邮箱.发送消息通知,而使用 PHP 内置的 mail() 函数,则需要邮件系统的支持. 如果熟悉 IMAP/SMTP 协议,结合 Socket 功能就可以编写邮 ...
- foxmail邮件加载失败重试_TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)...
修改php.ini中的一些配置 extension=php_openssl.dll //前面的分号去掉,allow_url_fopen = Off 改为 allow_url_fopen = On PH ...
- Java利用qq邮箱发送邮件
使用java应用程序发送程序十分简单: 本案列使用了开启QQ邮箱的STMP来进行邮件发送,下面是完成步骤: 首先我们需要开启邮箱发送端口: 在获得了授权码后,接下来便是进行编写邮件发送接口了,我们使用 ...
- Java实现利用QQ邮箱发送邮件
博主在做项目时,要求能够系统能够通过点击按钮来向某一个用户发送邮件. 于是博主使用了开启QQ邮箱的STMP来进行邮件发送,下面是完成步骤: 首先我们需要开启邮箱发送端口:首先我们打开自己的邮箱 就是这 ...
- php通过qq邮箱发送邮件,PHP 利用QQ邮箱发送邮件「PHPMailer」
在 PHP 应用开发中,往往需要验证用户邮箱.发送消息通知,而使用 PHP 内置的 mail() 函数,则需要邮件系统的支持. 如果熟悉 IMAP/SMTP 协议,结合 Socket 功能就可以编写邮 ...
- phpmail通过qq发邮箱失败_php 利用qq邮箱发送邮件的实现
是一个封装好的PHP邮件发送类,支持发送HTML内容的电子邮件,以及可以添加附件发送,并不像PHP本身mail()函数需要服务器环境支持,您只需要设置邮件服务器以相关信息就能实现邮件发送功能. 项目地 ...
- java实现发邮件qq邮箱,Java实现利用QQ邮箱发送邮件
博主在做项目时,要求能够系统能够通过点击按钮来向某一个用户发送邮件. 于是博主使用了开启QQ邮箱的STMP来进行邮件发送,下面是完成步骤: 首先我们需要开启邮箱发送端口:首先我们打开自己的邮箱 就是这 ...
- 手机邮箱看不到已发送邮件_TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」) - blog_zss小帅-博客猿...
在 PHP 应用开发中,往往需要验证用户邮箱.发送消息通知,而使用 PHP 内置的 mail() 函数,则需要邮件系统的支持. 如果熟悉 IMAP/SMTP 协议,结合 Socket 功能就可以编写邮 ...
最新文章
- Linus:Linux太烂,我要删了它,你们用Windows XP吧!
- 智能车竞赛技术报告 | 智能车视觉 - 中国计量大学 - 赛博-10
- 使用WSW将Nginx创建为Windows系统服务
- pprof 的原理与实现
- 基于语言文件的asp.net全球化解决方案
- 上海理工大学第二届“联想杯”全国程序设计邀请赛 Identical Day 思维 + 暴力
- 真香!8 行代码搞定最大子数组和问题
- c语言 b的作用,在C语言中各个标点符号的作用
- rsa解密的应用_安全-加解密
- “单于夜遁逃”的上一句诗是什么?这句诗出自哪里?
- 那些在大厂做外包的测试工程师,后来发展怎么样了?
- [转载] 令牌桶算法和漏桶算法python_排序算法(七):Bucket Sort 桶排序
- java 多线程之间通信_java多线程之间的通信
- QApplication、QGuiApplication和QCoreApplication三者的区别与联系
- 第二章 this全面解析
- 富士驱动器ALPHA5手动JOG运行操作
- 模型评估与改进(三)// 评估指标
- 电子警察位置【收藏】
- 大一学生作品《前端框架开发技术》 期末网页制作 HTML+CSS+JavaScript 个人主页网页设计实例
- 八段锦:让 IT 人士受益一生的运动救生圈