记录一下遇到的问题:
java有自带的发送邮件服务JavaMailSender,但是服务器在国外就会一直报链接超时异常,分析发现需要修改配置文件,附上海外服务器发送qq邮件步骤
1:登录qq邮箱,设置--账户--POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务--开启发送邮件服务,获得授权码
引入依赖
<!--邮件服务-->
<!--邮件服务-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
发送邮件工具类:
/*JAVA自带邮件服务*/
@Component
public class EmailUtils {
@Resource
private JavaMailSender javaMailSender;
@Value("${email.from}")
private String emailFrom;//你的邮箱
public void sendEmails(String email) {
try {
//创建复杂邮件对象
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
//发送复杂邮件的工具类
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "utf-8");
helper.setFrom(emailFrom);
helper.setSubject("邮件标题");
helper.setText("<h1>邮件内容</h1>", true);
//收件人
helper.setTo(email);
javaMailSender.send(mimeMessage);
} catch (Exception e) {
e.printStackTrace();
}
}
}
配置文件 application.properties
spring.mail.host=43.129.255.54 #qq邮箱服务器
spring.mail.username=123456@qq.com #你的qq邮箱
spring.mail.password=sasdasdasdwqdq #授权码
spring.mail.default-encoding=UTF-8
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.port=465
spring.mail.properties.mail.smtp.socketFactory.port = 465
spring.mail.properties.mail.smtp.socketFactory.class = javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.smtp.socketFactory.fallback = false