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

前言

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

準備

一個用於發送的郵箱,本文是用騰訊的域名郵箱,能夠本身搞一個域名綁定下,登陸地址:http://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

碼雲app

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

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

原文地址: https://www.zwqh.top/article/info/22測試

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

相關文章
相關標籤/搜索