springboot邮件发送功能和两个常见问题

一、邮件发送
1、在pom文件中添加依赖:

        <!--spring boot mail-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

2、在application.properties中添加配置

#spring boot mail configure
spring.mail.host=smtp.qq.com
spring.mail.username=2973821510@qq.com #此用户名不是qq号,而是邮箱地址
spring.mail.password=iipjvyzafytndfga
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

3、打开qq邮箱,配置(你可能会出现的问题一)
这里写图片描述
如果你是用的是163邮箱,也可根据提示保存授权码.

4、即可编写发送邮件代码


/**
 * Created by pengkai
 * @date 2016/10/19 0019.
 * @mail pengxiankaikai@163.com
 */
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(Application.class)
public class mailTest {

    @Resource
    private JavaMailSender javaMailSender;

    @Test
    public void sendmail(){
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom("xx@qq.com");
        message.setTo("xx@163.com");
        message.setSubject("您好,我们可以做朋友吗");
        message.setText("哈哈,是不是傻");
        javaMailSender.send(message);
    }
}
测试,如果你是用的是163或者sina邮箱,应该直接就能成功;
如果你是用的是qq邮箱,那么你可能就会出现另一个问题就是握手失败
将出现如下异常信息:
nested exception is: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
找了些资料发现,问题出自jdk。在jdk的jre中local_policy.jar和US_export_policy.jar包,由于安全机制导致的访问出错。
解决方法:
oracle中下载这两个包替换掉
下载地址:[这里写链接内容](http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html)

这里写图片描述

替换jdk安装目录下的jdk安装路径 \jre\lib\security下的两个文件即可,替换后再次运行。
即可成功。。。good luck。

这里写图片描述

ending

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值