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邮箱发送邮件相关推荐

  1. php模拟登录qq邮箱_PHP 利用QQ邮箱发送邮件的实现

    这篇文章主要介绍了关于PHP 利用QQ邮箱发送邮件的实现,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下在 PHP 应用开发中,往往需要验证用户邮箱.发送消息通知,而使用 PHP 内置的 ...

  2. TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)

    在 PHP 应用开发中,往往需要验证用户邮箱.发送消息通知,而使用 PHP 内置的 mail() 函数,则需要邮件系统的支持. 如果熟悉 IMAP/SMTP 协议,结合 Socket 功能就可以编写邮 ...

  3. foxmail邮件加载失败重试_TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)...

    修改php.ini中的一些配置 extension=php_openssl.dll //前面的分号去掉,allow_url_fopen = Off 改为 allow_url_fopen = On PH ...

  4. Java利用qq邮箱发送邮件

    使用java应用程序发送程序十分简单: 本案列使用了开启QQ邮箱的STMP来进行邮件发送,下面是完成步骤: 首先我们需要开启邮箱发送端口: 在获得了授权码后,接下来便是进行编写邮件发送接口了,我们使用 ...

  5. Java实现利用QQ邮箱发送邮件

    博主在做项目时,要求能够系统能够通过点击按钮来向某一个用户发送邮件. 于是博主使用了开启QQ邮箱的STMP来进行邮件发送,下面是完成步骤: 首先我们需要开启邮箱发送端口:首先我们打开自己的邮箱 就是这 ...

  6. php通过qq邮箱发送邮件,PHP 利用QQ邮箱发送邮件「PHPMailer」

    在 PHP 应用开发中,往往需要验证用户邮箱.发送消息通知,而使用 PHP 内置的 mail() 函数,则需要邮件系统的支持. 如果熟悉 IMAP/SMTP 协议,结合 Socket 功能就可以编写邮 ...

  7. phpmail通过qq发邮箱失败_php 利用qq邮箱发送邮件的实现

    是一个封装好的PHP邮件发送类,支持发送HTML内容的电子邮件,以及可以添加附件发送,并不像PHP本身mail()函数需要服务器环境支持,您只需要设置邮件服务器以相关信息就能实现邮件发送功能. 项目地 ...

  8. java实现发邮件qq邮箱,Java实现利用QQ邮箱发送邮件

    博主在做项目时,要求能够系统能够通过点击按钮来向某一个用户发送邮件. 于是博主使用了开启QQ邮箱的STMP来进行邮件发送,下面是完成步骤: 首先我们需要开启邮箱发送端口:首先我们打开自己的邮箱 就是这 ...

  9. 手机邮箱看不到已发送邮件_TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」) - blog_zss小帅-博客猿...

    在 PHP 应用开发中,往往需要验证用户邮箱.发送消息通知,而使用 PHP 内置的 mail() 函数,则需要邮件系统的支持. 如果熟悉 IMAP/SMTP 协议,结合 Socket 功能就可以编写邮 ...

最新文章

  1. Linus:Linux太烂,我要删了它,你们用Windows XP吧!
  2. 智能车竞赛技术报告 | 智能车视觉 - 中国计量大学 - 赛博-10
  3. 使用WSW将Nginx创建为Windows系统服务
  4. pprof 的原理与实现
  5. 基于语言文件的asp.net全球化解决方案
  6. 上海理工大学第二届“联想杯”全国程序设计邀请赛 Identical Day 思维 + 暴力
  7. 真香!8 行代码搞定最大子数组和问题
  8. c语言 b的作用,在C语言中各个标点符号的作用
  9. rsa解密的应用_安全-加解密
  10. “单于夜遁逃”的上一句诗是什么?这句诗出自哪里?
  11. 那些在大厂做外包的测试工程师,后来发展怎么样了?
  12. [转载] 令牌桶算法和漏桶算法python_排序算法(七):Bucket Sort 桶排序
  13. java 多线程之间通信_java多线程之间的通信
  14. QApplication、QGuiApplication和QCoreApplication三者的区别与联系
  15. 第二章 this全面解析
  16. 富士驱动器ALPHA5手动JOG运行操作
  17. 模型评估与改进(三)// 评估指标
  18. 电子警察位置【收藏】
  19. 大一学生作品《前端框架开发技术》 期末网页制作 HTML+CSS+JavaScript 个人主页网页设计实例
  20. 八段锦:让 IT 人士受益一生的运动救生圈

热门文章

  1. 【缓存应用】谈谈redis应用场景
  2. 飞机飞行仪表行业研究及十四五规划分析报告
  3. pytorch实现topk剪枝
  4. 从联通沃指数看网易云音乐的流量收割路径
  5. 网红营销,最怕摊上什么事儿?
  6. Android APP 用户协议与隐私政策 圆角Dialog显示
  7. Less预处理——混合方法
  8. kubernetes1.13.4集成安装heapster
  9. CSS基础:vw和vh是什么
  10. c语言创建文件夹与删除文件夹