因为考虑到邮箱注册的业务,最近写了一个发送邮件的业务.使用阿里云邮箱发送.在这里搭建什么的就不展示了,直接上关键代码.
pom.xml中添加:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
然后yml文件中添加配置,"*"号根据个人信息修改即可
说明
示例
host:smtp.qq.com
password 是需要去自己的邮箱开启POP3/SMTP功能的,这里并不是指登录密码,是开启POP3/SMTP后的授权码.
spring:
mail:
host: smtp.qq.com
username: zhangxian@***.com
password: *****
default-encoding: UTF-8
port: 25
之后注入JavaMailSender既可发送邮件
@Autowired
private JavaMailSender mailSender;
@Value("${spring.mail.username}")
private String mailFrom;
/**
* 发送简单邮件
* @param to 接收人
* @param subject 主题
* @param content 内容
* @return
*/
public Response sendSimpleMail(String to, String subject, String content){
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(mailFrom);
message.setTo(to);
message.setSubject(subject);
message.setText(content);
try{
mailSender.send(message);
}catch (Exception e){
log.error("发送邮件发生错误,接收人={},主题={},内容={},e={}",to,subject,content,e);
return Response.error("发送邮件发生异常");
}
return Response.success();
}
但是.因为使用的是阿里云服务器部署服务,25端口会被阿里屏蔽,所以改用到465端口,仅修改配置文件既可
spring
mail:
host: smtp.**.com
username: zhangxian@**.com
password: ******
default-encoding: UTF-8
port: 465
auth: true
properties:
mail:
smtp:
ssl:
enable: true
imap:
ssl:
socketFactory:
fallback: false
如有错误,敬请指正