SpringBoot配置Email发送功能

SpringBoot配置Email发送功能,第1张

相信使用过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)

        }

 

    }


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/11210044.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存