java mail smtps,SpringBoot整合JavaMail,通过smtps发送邮件

pom文件加入依赖

org.springframework.boot

spring-boot-starter-mail

yml配置

spring:

mail:

port: 465

host: 邮箱服务器地址

username: 邮箱用户

password: 密码

default-encoding: UTF-8

protocol: smtps

properties:

mail:

smtp:

ssl:

enable: true

socketFactory:

port: 465

class: javax.net.ssl.SSLSocketFactory

auth: true

starttls:

enable: true

required: true

MailService注入JavaMailSenderImpl

import org.springframework.mail.javamail.JavaMailSenderImpl;

import org.springframework.mail.javamail.MimeMessageHelper;

import org.springframework.stereotype.Service;

import javax.annotation.Resource;

import javax.mail.MessagingException;

import javax.mail.internet.MimeMessage;

import java.io.File;

public class MailService {

private JavaMailSenderImpl mailSender;

public void sendMail() {

// 发送邮件是耗时任务,需要另起线程,不影响主线程。此处可使用线程池处理

new Thread(() -> {

MimeMessage msg = mailSender.createMimeMessage();

MimeMessageHelper msgHelper = null;

try {

msgHelper = new MimeMessageHelper(msg, true);

msgHelper.setFrom("p0001416@shenhua.cc");

msgHelper.setTo("longkingmail@mail.longkingcloud.com");

msgHelper.setSubject("Test!");

msgHelper.setText("测试!");

msgHelper.addAttachment("PI_sf2_data.zip", new File("C:\\Users\\42193\\Desktop\\PI_sf2_data.zip"));

} catch (MessagingException e) {

e.printStackTrace();

}

mailSender.send(msg);

}).start();

}

}

运行程序,报错:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed:

sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

原因:找不到安全证书

解决方案:手动导入证书进行认证

下载保存证书

下载证书,浏览器访问邮箱服务器,点击锁按钮,点击【证书】

3ea1ffe28bc42a2306d0c98bc1f72275.png

点击【复制到文件】->【下一步】->选择Base64,【下一步】

bf1f31a64db2ccecfe65a4d21e02097b.png

9882750806b109f76616b1bbb03d77ca.png

041ce13a928e8777c7648443d1c8a3c2.png

保存证书

5f16b28a07b46798b115649240759b79.png

7455854c6fc95d9abfb05321b948aa99.png

这里我保存到桌面

## 导入证书

切换到jre的\lib\security目录下

C:\Users\42193>d:

D:\>cd devinstall\Java\jdk1.8.0_152\jre\lib

导入证书,秘钥库口令:changeit

D:\devinstall\Java\jdk1.8.0_152\jre\lib\security>keytool -import -alias test -keystore cacerts -file C:\Users\42193\Desktop\test.cer

输入密钥库口令:

alias:取别名

keystore:证书保存的文件名

将看到如下内容

b24cee6736544621fc4d30e05330afc4.png

输入"Y",添加成功

是否信任此证书? [否]: y

证书已添加到密钥库中

可查看证书

43c9a8ef69de25b4eb234371db078f51.png

至此,证书添加成功,重新运行程序即可!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值