如何直接测试Spring Framework发送邮件的类

做过一些开发的同学,往往有这种体会,就是在涉及系统间交互整合集成的工作时并不能一蹴而就。虽然,一些接口规范事先都非常明确,但实际操作时,总会有各种细小的可能打乱我们的节奏,这时候我们就需要简化问题,界定问题,最终排除问题所在。业务开发中,我们经常能碰到发送邮件功能的配置了,往往可能某个很小的参数会导致我们调用失败,像这种在Spring框架中要测试一个邮件发送Bean,再构造一个Spring的本地配置,工作量就有点大了,这里我给大家介绍一种最原始简单的办法。

在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




 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kyle-soft

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值