Spring?Boot整合郵箱發(fā)送郵件實例
1. 準備工作
登錄進自己的 qq 郵箱獲取授權碼
設置 – 賬戶 – POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務
點擊開始獲取授權碼,將授權碼保存下來,下面代碼整合的時候需要使用
2. 代碼整合
創(chuàng)建一個 Spring Boot 項目,引入以下依賴
<!-- email --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
配置文件
server: port: 8080 spring: # email 配置 mail: # SMTP 服務器地址 host: smtp.qq.com username: # 你的qq 郵箱地址 password: # 授權碼,上面從 qq 郵箱官網(wǎng)得到的授權碼 port: 587 protocol: smtp default-encoding: UTF-8
創(chuàng)建一個郵件收件人信息的實體類
/** * @author lishisen * @description 郵件收件人信息 * @date 2022/1/9 9:37 **/ @AllArgsConstructor @NoArgsConstructor @Data public class EmailModel implements Serializable { // 收件人郵箱地址 private String receiveEmailAddress; // 郵箱主題 private String emailTheme; // 郵件內容 private String emailContent; }
創(chuàng)建一個服務提供類,SendEmailService.java
/** * @author lishisen * @description 郵件發(fā)送服務類 * @date 2022/1/9 9:40 **/ @Slf4j @Component public class SendEmailService { @Autowired private JavaMailSender javaMailSender; @Autowired private JavaMailSenderImpl javaMailSenderImpl; // 發(fā)送者地址 private String posterAddress = "1876419736@qq.com"; // 發(fā)送者名稱 private String posterName = "測試郵件發(fā)送"; /** * 文本發(fā)送 **/ public void sendEmailAsText(final EmailModel emailModel) { System.out.println(emailModel.toString()); MimeMessagePreparator mimeMessagePreparator = mimeMessage -> { mimeMessage.setFrom(posterAddress); mimeMessage.setRecipients(Message.RecipientType.TO, emailModel.getReceiveEmailAddress()); mimeMessage.setText("發(fā)送者地址:" + posterAddress + '\n' + "發(fā)送者名稱:" + posterName + '\n' + "內容:" + emailModel.getEmailContent()); }; try { this.javaMailSender.send(mimeMessagePreparator); log.info("郵箱已返送至[{}]郵箱!", emailModel.getReceiveEmailAddress()); } catch (MailException e) { log.error("郵箱異常:{}", e); } } /** * html 網(wǎng)頁發(fā)送 * 該方法為同步方法 **/ public void sendEmailAsSysExceptionHtml(final EmailModel emailModel, String info) { MimeMessage mimeMessage = javaMailSenderImpl.createMimeMessage(); MimeMessageHelper mimeMessageHelper; try { mimeMessageHelper = new MimeMessageHelper(mimeMessage, true); mimeMessageHelper.setFrom(posterAddress); mimeMessageHelper.setTo(emailModel.getReceiveEmailAddress()); mimeMessageHelper.setSubject(emailModel.getEmailTheme()); mimeMessageHelper.setText( "<!DOCTYPE html>\n" + "<html lang=\"en\">\n" + "<head>\n" + " <meta charset=\"UTF-8\">\n" + " <title>Title</title>\n" + "</head>\n" + "<body>\n" + "<h2>" + info + "</h2>\n" + "<h3>您的驗證碼為:<span style='color: red'" + ">" + emailModel.getEmailContent() + "</span> " + ",請在 5 分鐘內進行驗證</h3>\n" + "</body>\n" + "</html>" , true); this.javaMailSender.send(mimeMessage); log.info("郵箱已返送至[{}]郵箱!", emailModel.getReceiveEmailAddress()); } catch (MessagingException e) { e.printStackTrace(); } } }
測試使用
@Autowired private SendEmailService sendEmailService; @Test public void sendMailTest() { // 創(chuàng)建收件人實體類,封裝收件人的信息 EmailModel emailModel = new EmailModel(); emailModel.setReceiveEmailAddress("18xxxxxqq.com"); emailModel.setEmailTheme("測試發(fā)送"); emailModel.setEmailContent("測試發(fā)送郵箱主體信息內容"); // 調用發(fā)送服務方法執(zhí)行發(fā)送任務 sendEmailService.sendEmailAsText(emailModel); System.out.println("郵件發(fā)送成功"); }
總結
到此這篇關于Spring Boot整合郵箱發(fā)送郵件實例的文章就介紹到這了,更多相關Spring Boot郵箱發(fā)送內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java狀態(tài)設計模式實現(xiàn)對象狀態(tài)轉換的優(yōu)雅方式
Java狀態(tài)設計模式通過將對象的行為和狀態(tài)分離,使對象能夠根據(jù)不同的狀態(tài)進行不同的行為操作。它通過將狀態(tài)抽象成一個獨立的類來實現(xiàn)對狀態(tài)的封裝,從而簡化了復雜的條件判斷和狀態(tài)轉換2023-04-04SpringBoot 項目添加 MDC 日志鏈路追蹤的執(zhí)行流程
日志鏈路追蹤就是將一個標志跨線程進行傳遞,在一般的小項目中也就是在你新起一個線程的時候,或者使用線程池執(zhí)行任務的時候會用到,比如追蹤一個用戶請求的完整執(zhí)行流程,本文給大家介紹SpringBoot MDC 日志鏈路追蹤的代碼,感興趣的朋友一起看看吧2021-06-06解決java maven項目找不到jconsole-1.8.0.jar和tools-1.8.0.jar包問題
這篇文章主要介紹了解決java maven項目找不到jconsole-1.8.0.jar和tools-1.8.0.jar包問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08SpringBoot集成Zipkin實現(xiàn)分布式全鏈路監(jiān)控
這篇文章主要介紹了SpringBoot集成Zipkin實現(xiàn)分布式全鏈路監(jiān)控的方法啊,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-09-09Spring Boot 與 Kotlin 上傳文件的示例代碼
這篇文章主要介紹了Spring Boot 與 Kotlin 上傳文件的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01