一、业务需求
在工作中遇到一个场景,软件bug或功能发布之后,会通知测试人员进行测试,要求写一个小工具能自动发送邮件,功能包含发送和抄送支持多个,因为只是通知没有写进附件功能,这个其他博客都有搜一下就可以了。
二、以下是实现代码
这里要注意如果接收者邮箱三种方式都没配置则需要手动输入,其他的没配置就是异常了。
这里使用的三种配置方式其中的环境变量和命令行参数需要导入以下包,我用的是.net5.0所以版本都是选的5.0。使用其他版本不知道会产生什么问题,能一直就一致(前辈给的经验)
使用json方式有个坑就是要把json文件的属性里的复制到输出目录选成始终复制,Environment.CurrentDirectory才找得到它。
查看代码
这里需要注意,邮箱发送需要校验码,我这里是用的qq邮箱,其他邮箱大概也要,我懒得截图了,以下为参考来源:.Net调用QQ邮箱发送邮件 – 樱满集 – 博客园 (cnblogs.com)
首先发送邮件要开启一个smtp的服务
第一步:打开qq邮箱点击设置:
第二步:点击账户
第三步:向下拉找到smtp字样的地方,然后全部开启
相信你能理解这句话,然后你开启的时候会自动弹出授权码,如果没有当时没有复制粘贴可以点击生成授权码 ,来重新生成:
第一种配置方式:json文件,以下是我的配置方式,取值格式是configuration["From:strCode"]
appsettings.json
第二种配置方式,环境变量,除了在项目内能设置,系统的环境变量也能识别到,以下只是距离项目内设置的,这里有个问题我还没弄清楚,弄到Linux环境里去之后项目里设置的好像没有生效,这里我验证之后再来更新,建议是使用json方式配置,优先级也是json优先其次环境变量再其次命令行参数。
第三种配置方式,命令行参数
这里很奇怪的是官方说明会用–开头,但取值的时候–是不生效的也就是说–str和str是一样的。具体的我也不知道,有兴趣的可以去官网了解一下。
以上分享就这些,写得不好或不对的地方欢迎指正。
转载请注明出处
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。