以163邮箱示例
(在本地电脑上,使用的25端口,可以发送、但是部署到阿里云服务器上,会报连接不了。因为阿里云把25端口禁了。所以以下是采用465端口并开了ssl的连接方式)
1、登录163邮箱。设置-POP3/SMTP/IMAP-开启服务 如图,点击开启时,会生成授权码。类似于密码。用记事本记下。下面需要用
2、公共类
package util;
import cn.hutool.extra.mail.MailAccount;
import cn.hutool.extra.mail.MailUtil;
import MailConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @author sunhl
* @date 2020/10/29 10:50
*/
@Component
@Slf4j
public class MailUtils {
@Autowired
private MailConfig mailConfig;
/**
* 发送简单邮件
*
* @param to 收件人
* @param subject 主题
* @param content 正文
*/
public void send(List<String> to, String subject, String content) {
log.info("邮件配置信息[{}]收件人[{}]主题[{}]正文[{}]",mailConfig, to, subject, content);
MailAccount account = new MailAccount();
account.setHost(mailConfig.getHost());
account.setPort(mailConfig.getPort());
account.setAuth(mailConfig.isAuth());
account.setFrom(mailConfig.getFrom());
account.setUser(mailConfig.getFrom());
account.setPass(mailConfig.getPass()); //密码
account.setStarttlsEnable(mailConfig.isStarttlsEnable());
account.setSslEnable(mailConfig.isSslEnable());
account.setSocketFactoryClass(mailConfig.getSocketFactoryClass());
account.setSocketFactoryFallback(mailConfig.isSocketFactoryFallback());
account.setSocketFactoryPort(mailConfig.getSocketFactoryPort());
MailUtil.send(account, to, subject, content, false);
}
}
3、配置类。使用的nacos
package config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import java.util.List;
/**
* @author sunhl
* @date 2020/10/30 9:54
*/
@Data
@Configuration
@ConfigurationProperties("mail")
public class MailConfig {
/**
* 服务器地址
*/
private String host;
/**
* 端口,默认25
*/
private int port;
/**
* 默认true
*/
private boolean auth;
/**
* 发件人邮箱地址
*/
private String from;
/**
* 发件人的邮箱授权码
*/
private String pass;
//开启ssl
private boolean starttlsEnable;
private boolean sslEnable;
private String socketFactoryClass;
private boolean socketFactoryFallback;
private int socketFactoryPort;
}
4、nacos配置
mail:
host: smtp.163.com
port: 465
auth: true
from: sunhongliang10086@163.com
pass: EXSSEWVTETDLXYJS
starttlsEnable: true
sslEnable: true
socketFactoryClass: javax.net.ssl.SSLSocketFactory
socketFactoryFallback: false
socketFactoryPort: 465
根据自己需求在进行修改。
以上;