前言
郵件服務在開發中非常常見,比如用郵件新增賬號、郵件作為找回密碼的途徑、用于訂閱内容定期郵件推送等等,下面就簡單的介紹下郵件實作方式。
郵件服務實作
1.添加依賴
<!-- 啟用郵箱 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2.配置檔案
spring.mail.host=smtp.qq.com
[email protected]
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("[email protected]");//接受者
message.setCc("[email protected]");// 抄送
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("[email protected]");
helper.setBcc("[email protected]");//密送
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("[email protected]");
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如果文章對您有幫助,請掃碼關注下我的公衆号,文章持續更新中...