
相信使用过Spring的众多开发者都知道Spring提供了非常好用的 JavaMailSender 接口实现邮件发送。在Spring Boot的Starter模块中也为此提供了自动化配置。下面通过实例看看如何在Spring Boot中使用 JavaMailSender 发送邮件。
在Spring Boot的工程中的 pom.xml 中引入 spring-boot-starter-mail 依赖:
如其他自动化配置模块一样,在完成了依赖引入之后,只需要在 application.properties 中配置相应的属性内容。
下面我们以QQ邮箱为例,在 application.properties 中加入如下配置(注意替换自己的用户名和密码):
通过单元测试来实现一封简单邮件的发送:
到这里,一个简单的邮件发送就完成了,运行一下该单元测试,看看效果如何?
由于Spring Boot的starter模块提供了自动化配置,所以在引入了 spring-boot-starter-mail 依赖之后,会根据配置文件中的内容去创建 JavaMailSender 实例,因此我们可以直接在需要使用的地方直接 @Autowired 来引入邮件发送对象。
对于qq邮箱这样写过后会报错:
1、异常信息:
这种错误一般是因为jre的lib下C:\Program Files\Java\jdk1.8.0_51\jre\lib\security,替换2个jar包,参考文档
http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
2、异常信息
发送方必须要开启smtp,获取到的授权码,界面如下:
3、异常信息:
换成公司企业邮箱报错,通过将properties文件的内容修改就可以了,这里的用户密码就是自己的邮箱密码(这点不同于qq邮箱)
1. 发送HTML格式的邮件
注意: 这里创建的是 MimeMessageHelper ,且在调用 setText 时需要在第二个参数传入 true ,这样才会使用HTML格式发送邮件
通过velocity模板发送邮件:
在resources下建一个templates包 该包下建立一个文件template.vm,内容以html格式随便写
<html>
<body>
<h3>你好, ${username}, 这是一封模板邮件!</h3>
</body>
</html>
测试结果:
验证错误呗。三种可能性1.用户名密码不对 2.我记得java mail有个选项要设置 mail.smtp.auth为true才行的。3.登录qq邮箱,开通smtp服务
-------不知道你有没有用过spring的 mailsender, 封装了javamail,简化使用方法。spring javamail举例:
xml
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"><property name="protocol" value="smtp"/>
<property name="host" value="smtp.qq.com"/>
<property name="port" value="25" />
<property name="username" value="xxx"/>
<property name="password" value="xxx"/>
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
</props>
</property>
</bean> @Autowired
private JavaMailSender mailSender
@Override
public void sendCommonMail(String toMailAddr, String subject, String message) {
try{
MimeMessage mime = mailSender.createMimeMessage()
MimeMessageHelper helper = new MimeMessageHelper(mime, true, "utf-8")
helper.setFrom(ResourceUtil.getConfigByName("mail_from"))//发件人
helper.setTo(toMailAddr)//收件人
helper.setSubject(subject)//邮件主题
helper.setText(message, false)
mailSender.send(mime)
}catch(Exception e){
org.jeecgframework.core.util.LogUtil.error("email send error", e)
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)