SpringBoot 发送邮件以及邮件内容换行(换行符"\n"不起作用)
第0步:准备工作
邮箱类型 SMTP服务器地址 端口号
QQ邮箱 smtp.qq.com 465或587
sina邮箱 smtp.sina.cn 465或587
126邮箱 smtp.126.com 465或994
aliyun邮箱 smtp.aliyun.com 465或994
163邮箱 smtp.163.com 465或994
yeah邮箱 smtp.yeah.net 465或994
示例 163邮箱配置
第一步:引入相关依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
第二步:配置相关属性
mail:
protocol: smtps
host: smtp.163.com
username: 你的邮箱
password: 邮箱登录密码
port: 465
default-encoding: UTF-8
properties:
mail:
smtp:
socketFactoryClass: javax.net.ssl.SSLSocketFactory
debug: true
第三步:编写代码
/**
* FileName: EmailUtil
* Author: be.insighted
* Date: 2022/10/30 下午 12:49
* Description: 發送郵件
*/
@Service
@Slf4j
public class EmailUtil {
@Autowired
private JavaMailSender sender;
@Value("${spring.mail.username}")
private String from;
@Value("${mail.to}")
private List<String> to;
@Value("${mail.cs}")
private List<String> cs;
/**
* 发送纯文本的简单邮件
*
* @param content 发送的文本内容
*/
public void sendSimpleMail(String content, String subject) {
log.info("初始化数据: from = {},to = {}, cs = {}", from, to, cs);
// 构建一个邮件对象
SimpleMailMessage message = new SimpleMailMessage();
// 设置邮件主题
message.setSubject(subject);
message.setFrom(from);
// 设置邮件接收者,可以有多个接收者,中间用逗号隔开,以下类似
// message.setTo("10*16@163.com","1232*@163.com");
String[] mailToArray = list2ArrayString(to);
message.setTo(mailToArray);
String[] ccArray = list2ArrayString(cs);
// 设置邮件抄送人,可以有多个抄送人
message.setCc(ccArray);
// 设置隐秘抄送人,可以有多个
// message.setBcc("");
// 设置邮件发送日期
message.setSentDate(new Date());
// 设置邮件的正文
message.setText(content);
// 发送邮件
sender.send(message);
}
private String[] list2ArrayString(List<String> src) {
String[] ret = new String[src.size()];
for (int i = 0; i < src.size(); i++) {
ret[i] = src.get(i);
}
return ret;
}
}
第四步:测试
第五步:收到的邮件
邮件内容换行
发邮件String,java \n不起作用 =====》“\n”不换行问题,用“<br/>”替换。
@Data
public class EmailContentDTO<P, R> {
private String apiOrMethod;
private String third;
private P request;
private R response;
private String datetime;
@Override
public String toString() {
return "请求第三方服务接口报错:" +
"<br/>接口(方法)信息:" + apiOrMethod +
"<br/>第三方服务:" + third +
"<br/>请求参数:" + request +
"<br/>请求响应:" + response +
"<br/>请求时间:" + datetime;
}
}