排坑 | Exceptionless 5.x 无法正常发送邮件

作者:神秘网友 发布时间:2020-09-06 19:34:51

排坑 | Exceptionless 5.x 无法正常发送邮件

排坑 | Exceptionless 5.x 无法正常发送邮件

排坑 | Exceptionless 5.x 无法正常发送邮件

【问题解决作者 / Edison Zhou

这是恰童鞋骚年的第282篇原创内容


你有碰到过通过docker部署Exceptionless无法发送邮件的问题吗?此解决办法适用于Exceptionless 5.x版本(如果你不想升级6.x的话)。

1问题起因

去年这个时候,得知Exceptionless 5.0版本发布,我立即将一直部署在Windows Server上的线上Exceptionless迁移到了Linux上。但是,期间发现按照wiki配置好Email却一直无法发送邮件,但由于不影响使用,我也就没有深究,发布了一篇快速的部署Exceptionless 5.0的博文在博客园上并发出了求助,结果各个园友的帮助回答都没有解决我的问题。

近两个月发现容器化的Exceptionless的账号没有经过验证,经常两三周账号数据就会丢失,于是就花了一点时间排查了一下。想着肯定有人跟我碰到了同样的问题,于是直接去github上搜了搜issue,果然有很多chinese friends都提了问题,但是大家的描述都不到位,终于找到了两个issue和我问题比较match,于是尝试了大家给的办法并且验证可行,所以也分享给大家。

2问题描述与解决

无法发送验证邮件

我们应该都看过Exceptionless的wiki文档上介绍,通过docker-compose.yml中为api和job两个服务配置一下这个参数配置就可以发送邮件:

EX_ConnectionStrings__Email: smtps://itc-dev%40qq.com:[email protected]:465

其中,smtps代表使用SSL安全协议,itc-dev%40qq.com是我的账号名,其中%40是转义字符,代表@号,即[email protected]。

但是通过docker-compose up -d启动起来之后,你会发现所有服务都正常,但就是在“My Account”页面中点击发送验证邮件始终无法收到验证邮件。通过查看logs发现Mailkit报错,通过查询issues中了解到,如果不想改代码的话就需要额外再配置一个参数EX_SmtpFrom(给api和job项目都配置一下):

EX_ConnectionStrings__Email: smtps://itc-dev%40qq.com:[email protected]:465
EX_SmtpFrom: [email protected]

这个EX_SmtpFrom是你需要通过SMTP协议登录的发送者邮箱,这里不再需要转移字符了,直接配置上即可。

重新启动,你会发现,你可以收到验证邮件了。

排坑 | Exceptionless 5.x 无法正常发送邮件

更多细节,请参考:https://github.com/exceptionless/Exceptionless/issues/545

点击验证邮件链接无法真正验证邮箱

前面收到了邮件链接,我想终于可以激活了我的账号邮箱了,结果没想到通过验证链接过去还是没有真正激活我的账号。于是,我又去issue里面找了一下,发现需要更改一下BASE_URL的配置(也是同样给api和job项目都配置一下):

EX_BaseURL: http://192.168.16.180:5100/#!

原配置:EX_BaseURL: http://192.168.16.180:5100,需要加上 /#! 符号,因为如果你没有使用url重写,需要给BaseURL加上这个符号。后续6.x版本应该已经解决了这个问题了,但是5.x版本应该还是存在。

排坑 | Exceptionless 5.x 无法正常发送邮件

更多细节,请参考:

https://github.com/exceptionless/Exceptionless/issues/295

3启用邮件之后

每日项目简报

排坑 | Exceptionless 5.x 无法正常发送邮件

Exceptionless的强大之后就在于它提供了这个功能,对于线上环境特别有用。

呼呼,我一般只选择通过我严重错误。

新的异常错误通知

排坑 | Exceptionless 5.x 无法正常发送邮件

对于线上环境,一些可以避免的异常及时通知,可以帮助我们尽早在下个版本发布前修正。

4小结

如果你也在用Exceptionless 5.x,希望可以帮到你。

排坑 | Exceptionless 5.x 无法正常发送邮件

专注于开发技术与个人成长分享,

对你有用的公众号!

排坑 | Exceptionless 5.x 无法正常发送邮件相关教程

  1. NDIS Filter (5.x/6.x) 框架分析
  2. Unity5.x AssetBundle依赖项打包详解
  3. Spring 5.x 学习(2)—两万字的IoC入门以及基于XML的IoC配置全解
  4. app.publish_获取eZ Publish 5.x以便在Homestead上工作的13个步
  5. Centos7部署jenkins(排坑指南)
  6. es学习笔记二---ElasticSearch5.x 在远程Linux6.5服务器上搭建单
  7. cas5.x实现将ticket维护到redis集群(不使用官方提供的哨兵模式
  8. 《Unity 5.x游戏开发实战》一2.1 创建一个金币的材质