前言
邮件服务在开发中非常常见,比如用邮件注册账号、邮件作为找回密码的途径、用于订阅内容定期邮件推送等等,下面就简单的介绍下邮件实现方式。
准备
一个用于发送的邮箱,本文是用腾讯的域名邮箱,可以自己搞一个域名绑定下,登录地址:http://domain.mail.qq.com
邮件服务实现
1. 添加依赖
<!-- 启用邮箱 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2. 配置文件
spring.mail.host=smtp.qq.com
spring.mail.username=zwqh@clover1314.com
spring.mail.password=*****
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
3. 实现示例
@Service
public class MailTool {@Value("${spring.mail.username}")
private String from;
@Autowired
private JavaMailSender mailSender;
/**
* 发送邮件
*
* @return
*/
public boolean send() {
try {SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from);// 发送者
message.setTo("zwqh@clover1314.com");// 接受者
message.setCc("sohuniuer@sina.com");// 抄送
message.setSubject("邮件主题"); // 邮件主题
message.setText("这里是邮件内容");// 邮件内容
mailSender.send(message);
System.out.println("邮件发送成功");
return true;
} catch (Exception e) {e.printStackTrace();
return false;
}
}
/**
* 发送富文本邮件
*
* @return
*/
public boolean sendHtml() {
// 使用 JavaMail 的 MimeMessage,支持更多复杂的邮件格式和内容
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
// 创建 MimeMessageHelper 对象,处理 MimeMessage 辅助类
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
// 使用辅助类 MimeMessage 设定参数
helper.setFrom(from);
helper.setTo("zwqh@clover1314.com");
helper.setBcc("sohuniuer@sina.com");// 密送
helper.setSubject("富文本邮件主题");
helper.setText("<h1> 这是富文本邮件内容标题 </h1><p style='color:red;'> 这里是段落一 </p><p style='color:orange;'> 这里是段落二 </p>",
true);
mailSender.send(mimeMessage);
System.out.println("邮件发送成功");
return true;
} catch (MessagingException e) {e.printStackTrace();
return false;
}
}
/**
* 发送富文本带附件的邮件
* @return
*/
public boolean sendHtmlWithAttach() {
// 使用 JavaMail 的 MimeMessage,支持更多复杂的邮件格式和内容
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
// 创建 MimeMessageHelper 对象,处理 MimeMessage 辅助类
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setFrom(from);
helper.setTo("zwqh@clover1314.com");
helper.setSubject("富文本带附件的邮件主题");
helper.setText("<h1> 这是富文本邮件内容标题 </h1><p style='color:red;'> 这里是段落一 </p><p style='color:orange;'> 这里是段落二 </p>",
true);
// 加载文件资源作为附件
ClassPathResource file=new ClassPathResource("static/avatar2.jpg");
// 添加附件, 并重命名
helper.addAttachment("附件.jpg", file);
mailSender.send(mimeMessage);
System.out.println("邮件发送成功");
return true;
} catch (MessagingException e) {e.printStackTrace();
return false;
}
}
}
4.Controller 用于测试
@RestController
public class MailController {
@Autowired
private MailTool mailTool;
@RequestMapping("/send")
public String send() {mailTool.send();
return "send success";
}
@RequestMapping("/sendHtml")
public String sendHtml() {mailTool.sendHtml();
return "sendHtml success";
}
@RequestMapping("/sendHtmlWithAttach")
public String sendHtmlWithAttach() {mailTool.sendHtmlWithAttach();
return "sendHtmlWithAttach success";
}
}
5. 测试效果
示例代码
github
码云
非特殊说明,本文版权归 朝雾轻寒 所有,转载请注明出处.
原文标题:Spring Boot 2.X(十三):邮件服务
原文地址:https://www.zwqh.top/article/info/22
如果文章对您有帮助,请扫码关注下我的公众号,文章持续更新中 …