赞
踩
上图中的代码是一套完整的编译、调用testng、并自动发送邮件的完整代码,这里我们具体看一下三个 target
target name=“run_tests_and_send_mail”
target name=“run_tests”
target name=“send_email”
从name属性我们可以看出这是实现一个执行 testng 调用然后自动发送邮件的功能,说到这里我们就不得不先说说 target name=“run_tests” 和 target name=“send_email”
从实现的步骤来看,“send_email”是在“run_tests”之后执行的,两者本身之间没有什么必然的依赖关系。
比如执行“run_tests”之前,我们必须要有相应的class,同样对应的,需要的class要先执行编译并删掉原来的class之后才能再次执行编译,然后我们才可以再执行“run_tests”。
本身这些需要执行的步骤在代码上就存在这依赖的关系。
而“send_email”不一样,因为本身“send_email”存在着testng上一个版本的报告,所以没有前面的“run_tests” 依赖,我们也仍然是可以发送邮件成功的。如果我们在 “send_email” 加上“depends=“run_tests”也是可以执行成功的。但是这种不存在代码实际上的依赖关系比较奇怪。
所以这里我们做了一个任务集 target name=”run_testsand_send_mail”,将“run_tests”与“send_email”合并起来,这样就可以了。
上图是实现发送邮件的一段 target
对于常见属性的说明:
1、 mailhost mail 服务器的地址
2、 mailport mail服务器的端口
3、 replyto 回复mail地址
4、 tolist 收件地址列表 可用子标签替代
5、 cclist 抄送地址列表 可用子标签替代
6、 bcclist 暗送地址列表 可用子标签替代
7、 message 邮件内容 一个或多个子标签替代
8、messagefile 文件列表文件内容将被做为邮件内容
一个或多个子标签替代
9、messagemimetype 邮件类型, 默认为text/plain
10、filset 附件列表 多个附件逗号或空格隔开 用 子标签替代
11、user 发送邮箱的用户名
12、password 发送邮箱的密码!重点!这里是授权码!说是密码的真是误人子弟!
13、 subject 邮件标题
14、 charset 字符集
15、 encode 编码
16、 ssl 是否使用 TLS/SSL
在一开始写完“send_email” 的target之后运行测试了一下,
报错”javax.mail.internet.MimeMessage”,然后就开始分析,
通过在http://www.findjar.com/index.x搜索报错信息,确认报错信息来源于mail.jar包
解决方法如下:
ant 在实现发送邮件 依赖于 activation.jar
、mail.jar
、commons-email-1.5.jar
、ant-javamail.jar
包。
其中 ant-javamail.jar
包在安装ant的时候会自动解压在 ant
的 lib
路径下。
activation.jar
、mail.jar
和 commons-email-1.5.jar
的包需要手动放到 ant
的 lib
路径下。
不知道是不是开发的大神都懂还是其他原因,网络上查到的不少资料只说这些jar包应该放在对应的路径下。但是执行过这种操作后,再执行 Run As---Ant Build
的时候,仍然报错。
其实这是有原因的,只把这些jar包放到对应的路径下之后,还应该将这些jar包添加 到ant home
里面,在 eclipse 里执行 windows-->Preference-->Ant-->Runtime
,在它的 ant home
里面加入以上jar包
然后 “Apply”—>“OK”,就可以了。
-----
这个报错的原因是“身份验证失败”,在target “send_emai” 的password属性我们有段注释。通过查阅的相关资料来看,很多人都说这里输入的是邮箱的密码,即使是给出正确的密码仍报错的情况下,还是让大家输入正确的密码。
其实不然,这里的“password”输入的并不是密码,而是一种授权码,专门作用于登陆 第三方邮件客户端授权的专用密码,适用于登录以下服务: POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。
在邮箱设置里启用授权码服务之后,将password改为使用的授权码,邮件发送成功。
如何启用邮箱授权码服务?
因为我们使用的163邮箱,所以这里我们就以163邮箱为例。出于安全因素的原因,在 设置授权码时,需要绑定的手机号码接收验证码才可以设置授权码,且同一天之内只能 接收3次。
同样,QQ邮箱在设置授权码时,也需要手机执行类似的操作。
网易邮箱帮助中心:http://help.mail.163.com/faq.do?m=list&categoryID=197
腾讯邮箱帮助中心:http://service.mail.qq.com/cgi-bin/help?id=28
下图为163网易邮箱设置授权码设置方法
即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装自己,为自己的面试之路不再坎坷!今天就给大家分享一个Github上全面的Java面试题大全,就是这份面试大全助我拿下大厂Offer,月薪提至30K!
我也是第一时间分享出来给大家,希望可以帮助大家都能去往自己心仪的大厂!为金三银四做准备!
一共有20个知识点专题,分别是:
JVM面试专题
Java并发面试专题
Kafka面试专题
MongDB面试专题
MyBatis面试专题
MySQL面试专题
Netty面试专题
RabbitMQ面试专题
Redis面试专题
Spring Cloud面试专题
SpringBoot面试专题
zookeeper面试专题
常见面试算法题汇总专题
计算机网络基础专题
设计模式专题
[外链图片转存中…(img-l7vGbnFs-1714658882555)]
zookeeper面试专题
[外链图片转存中…(img-KpX6FxOg-1714658882556)]
常见面试算法题汇总专题
[外链图片转存中…(img-zKCDEy4Q-1714658882556)]
计算机网络基础专题
[外链图片转存中…(img-75kyVyit-1714658882556)]
设计模式专题
[外链图片转存中…(img-9E5c9aof-1714658882557)]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。