- WebDriver框架篇 - ant使用 - ant调用email 自动发送邮件
- ant调用email 自动发送邮件
- 任务集:"run_tests_and_send_mail"
- 任务集:发送邮件:"send_email"
- 关于发送邮件遇到报错的情况分析
- 1、报错 javax.mail.internet.MimeMessage
- 2、报错 authentication failed
基于JAVA实现的WEB端UI自动化 -自动化测试简单介绍
基于JAVA实现的WEB端UI自动化 - WebDriver基础篇 - 实现简单的浏览器操作
基于JAVA实现的WEB端UI自动化 - WebDriver基础篇 - 元素定位
基于JAVA实现的WEB端UI自动化 - WebDriver基础篇 -常见的页面元素操作
基于JAVA实现的WEB端UI自动化 - WebDriver基础篇 - iframe元素定位
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 元素定位场景分析
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 获取测试对象属性
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 获取测试对象状态
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 第三方控件类操作
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 执行JS操作
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - WebDriver的三种等待方式
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 模拟键盘操作
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 代码检查点[验证点/断言]与图像检查点
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 验证码处理
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - cookie操作
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 关联
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - exe文件执行
基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - grid [跨浏览器远程测试-可分布式]
基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - 框架设计小结
基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - testng使用
基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - ant使用 - 关于如何手动下载JAR包
基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - ant使用 - ant安装、环境变量配置、ant实例及运行Ant Build 出现问题的解决方法
基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - ant使用 - ant调用testng文件及ant 调用testng遇到的问题
基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - ant使用 - ant调用email 自动发送邮件
持续更新中
WebDriver框架篇 - ant使用 - ant调用email 自动发送邮件 ant调用email 自动发送邮件上图中的代码是一套完整的编译、调用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”合并起来,这样就可以了。
任务集:发送邮件:“send_email”
上图是实现发送邮件的一段 target
对于常见属性的说明:
1、 mailhost mail 服务器的地址 2、 mailport mail服务器的端口 3、 replyto 回复mail地址 4、 tolist 收件地址列表 可用子标签替代 5、 cclist 抄送地址列表 可用子标签替代 6、 bcclist 暗送地址列表 可用子标签替代 7、 message 邮件内容 一个或多个关于发送邮件遇到报错的情况分析 1、报错 javax.mail.internet.MimeMessage子标签替代 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”,就可以了。
-----
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网易邮箱设置授权码设置方法



