基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - ant使用 - ant调用email 自动发送邮件


上图中的代码是一套完整的编译、调用testng、并自动发送邮件的完整代码,这里我们具体看一下三个 target

  • target name=“run_tests_and_send_mail”

  • target name=“run_tests”

  • target name=“send_email”

任务集:“run_tests_and_send_mail”


在这里插入图片描述


从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”合并起来,这样就可以了。


在这里插入图片描述


任务集:发送邮件:“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

关于发送邮件遇到报错的情况分析

1、报错 javax.mail.internet.MimeMessage

在一开始写完“send_email” 的target之后运行测试了一下,

报错”javax.mail.internet.MimeMessage”,然后就开始分析,

通过在http://www.findjar.com/index.x搜索报错信息,确认报错信息来源于mail.jar包

解决方法如下:

ant 在实现发送邮件 依赖于 activation.jarmail.jarcommons-email-1.5.jarant-javamail.jar包。

其中 ant-javamail.jar 包在安装ant的时候会自动解压在 antlib 路径下。

activation.jarmail.jarcommons-email-1.5.jar 的包需要手动放到 antlib 路径下。

不知道是不是开发的大神都懂还是其他原因,网络上查到的不少资料只说这些jar包应该放在对应的路径下。但是执行过这种操作后,再执行 Run As---Ant Build 的时候,仍然报错。

其实这是有原因的,只把这些jar包放到对应的路径下之后,还应该将这些jar包添加 到ant home里面,在 eclipse 里执行 windows-->Preference-->Ant-->Runtime,在它的 ant home里面加入以上jar包

然后 “Apply”—>“OK”,就可以了。

-----在这里插入图片描述


2、报错 authentication failed

这个报错的原因是“身份验证失败”,在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个知识点专题,分别是:

Dubbo面试专题

JVM面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Java并发面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Kafka面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MongDB面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MyBatis面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MySQL面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Netty面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

RabbitMQ面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Redis面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Spring Cloud面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

SpringBoot面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

zookeeper面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

常见面试算法题汇总专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

计算机网络基础专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

设计模式专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

[外链图片转存中…(img-l7vGbnFs-1714658882555)]

zookeeper面试专题

[外链图片转存中…(img-KpX6FxOg-1714658882556)]

常见面试算法题汇总专题

[外链图片转存中…(img-zKCDEy4Q-1714658882556)]

计算机网络基础专题

[外链图片转存中…(img-75kyVyit-1714658882556)]

设计模式专题

[外链图片转存中…(img-9E5c9aof-1714658882557)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 29
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值