Spring Boot 2.X(十三):郵件服務

前言

郵件服務在開發中很是常見,好比用郵件註冊帳號、郵件做爲找回密碼的途徑、用於訂閱內容按期郵件推送等等,下面就簡單的介紹下郵件實現方式。git

準備

一個用於發送的郵箱,本文是用騰訊的域名郵箱,能夠本身搞一個域名綁定下,登陸地址:domain.mail.qq.comgithub

郵件服務實現

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.測試效果

示例代碼

githubspring

碼雲bash

非特殊說明,本文版權歸 朝霧輕寒 全部,轉載請註明出處.app

原文標題:Spring Boot 2.X(十三):郵件服務dom

原文地址: https://www.zwqh.top/article/info/22spring-boot

若是文章對您有幫助,請掃碼關注下個人公衆號,文章持續更新中...測試

相關文章
相關標籤/搜索