如何直接测试Spring Framework发送邮件的类
2017-11-23 12:21
316 查看
做过一些开发的同学,往往有这种体会,就是在涉及系统间交互整合集成的工作时并不能一蹴而就。虽然,一些接口规范事先都非常明确,但实际操作时,总会有各种细小的可能打乱我们的节奏,这时候我们就需要简化问题,界定问题,最终排除问题所在。业务开发中,我们经常能碰到发送邮件功能的配置了,往往可能某个很小的参数会导致我们调用失败,像这种在Spring框架中要测试一个邮件发送Bean,再构造一个Spring的本地配置,工作量就有点大了,这里我给大家介绍一种最原始简单的办法。
在Spring中我们通常会以类似如下代码配置发送邮件的Bean:
这时候,我们可以参照这个配置,构造一个最简单的Java程序或者测试用例,而不用绕进Spring进行测试,事情是不是就变得清晰明了多了,下面是我写的简单测试程序,当然我们也可以写成JUnit测试用例。
用到的包:
javax.mail-1.5.6.jar
javax.mail-api-1.5.6.jar
spring-context-support-4.3.8.RELEASE.jar
spring-core-4.3.8.RELEASE.jar
spring-beans-4.3.8.RELEASE.jar
在Spring中我们通常会以类似如下代码配置发送邮件的Bean:
<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="hwsmtp.exmail.qq.com" /> <property name="port" value="465" /> <property name="username" value="kyle-soft@foxmail.com" /> <property name="password" value="xxxxxx" /> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">true</prop> <prop key="mail.smtp.ssl.enable">true</prop> <prop key="mail.smtp.from">kyle-soft@foxmail.com</prop> <prop key="mail.debug">true</prop> </props> </property> </bean>
这时候,我们可以参照这个配置,构造一个最简单的Java程序或者测试用例,而不用绕进Spring进行测试,事情是不是就变得清晰明了多了,下面是我写的简单测试程序,当然我们也可以写成JUnit测试用例。
import java.util.Properties; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.mail.javamail.JavaMailSenderImpl; public class Mail { public static void main(String[] args) { JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl(); javaMailSender.setHost("hwsmtp.exmail.qq.com"); javaMailSender.setPort(465); javaMailSender.setUsername("kyle-soft@qq.com"); javaMailSender.setPassword("******"); // 替换成真实密码 Properties javaMailProperties = new Properties(); javaMailProperties.put("mail.smtp.auth", "true"); javaMailProperties.put("mail.smtp.ssl.enable", "true"); //javaMailProperties.put("mail.transport.protocol", "smtps"); javaMailProperties.put("mail.smtp.from", "kyle-soft@qq.com"); javaMailSender.setJavaMailProperties(javaMailProperties); MimeMessage message = javaMailSender.createMimeMessage(); MimeMessageHelper messageHelper; try { messageHelper = new MimeMessageHelper(message, true, "UTF-8"); messageHelper.setSubject("通知面单接收22"); messageHelper.setFrom((String)javaMailSender.getJavaMailProperties().get("mail.smtp.from")); messageHelper.setTo("kyle-soft@foxmail.com"); messageHelper.setText("通知邮件接收,记得及时打印出来。谢谢", true); } catch (MessagingException e) { // TODO Auto-generated catch block e.printStackTrace(); } javaMailSender.send(message); } }
用到的包:
javax.mail-1.5.6.jar
javax.mail-api-1.5.6.jar
spring-context-support-4.3.8.RELEASE.jar
spring-core-4.3.8.RELEASE.jar
spring-beans-4.3.8.RELEASE.jar
相关文章推荐
- linux邮件发送测试 直接shell/smpt发送
- 装饰者模式的学习(c#) EF SaveChanges() 报错(转载) C# 四舍五入 保留两位小数(转载) DataGridView样式生成器使用说明 MSSQL如何将查询结果拼接成字符串 快递查询 C# 通过smtp直接发送邮件 C# 带参访问接口,WebClient方式 C# 发送手机短信 文件 日志 写入 与读取
- 如何将testng测试报告发送邮件
- Java+Selenium3框架设计篇5-如何实现邮件发送测试报告
- 发送邮件时,如何附带上中文等价名信息
- CentOS如何用sendmail发送邮件
- 浅析linux下如何用脚本自动发送文本mail邮件
- java代码如何发送QQ邮件
- jenkins配置QQ邮箱自动发送RF测试构建结果通知邮件
- 如何使用sendEmail发送邮件
- 最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件
- Bigcommerce: 给已完成购买的客户发送一封产品评论邮件,让客户直接进行产品评论
- JavaMail应用——如何发送超文本(html)格式的邮件
- 如何通过JAVA发送邮件
- C# 如何新建和发送带附件的邮件
- java email发送邮件测试
- java中如何实现邮件的发送包括网页文件的发送
- 配置-如何用ABAP实现自动发送外部邮件
- delphi7+indy9发送邮件源码(测试通过)
- spring 发送邮件 发送人直接为中文名