日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

封装一个邮件发送工具类,一个字,巴适

發布時間:2024/9/27 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 封装一个邮件发送工具类,一个字,巴适 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

系列文章目錄


文章目錄

  • 系列文章目錄
  • 前言
  • 一、 介紹
  • 二、二話不說開始干
    • 1.引入庫
    • 2. 郵件發送實體(Mail)
    • 3. 郵件發送類型枚舉(MailType )
    • 4.郵件發送抽象類(AbstractMail )
    • 5. 郵件發送工具類
    • 6. 如何使用
  • 總結


前言

徒手封裝一個簡單郵件工具類

一、 介紹

學會封裝代碼,封裝工具類,將會讓代碼的復用性更高,還可以減少工作量。一個字:巴適

二、二話不說開始干

1.引入庫

引入maven依賴:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId> </dependency>

2. 郵件發送實體(Mail)

package com.breez.awesome.utils.mail;import lombok.Data; import lombok.experimental.Accessors;import java.io.Serializable;/*** 郵件實體* @author XinLiu* @email lx90352@163.com*/ @Data @Accessors(chain = true) public class Mail implements Serializable {/*** 郵件ID*/private String id;/*** 郵件發送者*/private String from;/*** 郵件接收者*/private String to;/*** 郵件內容*/private String text;/*** 郵件主題*/private String subject;/*** 附件地址*/private String attachment; }

3. 郵件發送類型枚舉(MailType )

郵件發送有三種類型,分別是簡單類型、支持HTML格式的、帶附件的類型,這種常量,我們就可以用一個枚舉類來保存。

package com.breez.awesome.utils.mail;/*** 郵件發送的類型** @author XinLiu* @since 2021/9/21* @email lx90352@163.com*/ public enum MailType {/*** 簡單郵件類型*/SIMPLE,/*** HTML格式代碼*/HTML,/*** 帶附件類型*/ATTACHMENT}

4.郵件發送抽象類(AbstractMail )

郵件發送抽象類用于郵件的具體發送,其中有兩個抽象方法,一個是支持自定義發送類型,一個默認簡單類型。定義抽象類目的是方便子類按照自己的策略自定義發送類型

package com.breez.awesome.utils.mail;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.FileSystemResource; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper;import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import java.io.File;/*** 郵件發送抽象類** @author BreezAm* @email lx90352@163.com* @since 2021/9/21*/ public abstract class AbstractMail {@Autowiredprivate JavaMailSender javaMailSender;/*** 發送一封簡單的郵件** @param mail 郵件實體*/public void handleSimpleMail(Mail mail) {SimpleMailMessage mailMessage = new SimpleMailMessage();mailMessage.setFrom(mail.getFrom());mailMessage.setTo(mail.getTo());mailMessage.setSubject(mail.getSubject());mailMessage.setText(mail.getText());javaMailSender.send(mailMessage);}/*** 發送帶有HTML格式的郵件** @param mail 郵件實體*/public void handleHtmlMail(Mail mail) {MimeMessage mimeMessage = javaMailSender.createMimeMessage();MimeMessageHelper message = null;try {message = new MimeMessageHelper(mimeMessage, true);message.setFrom(mail.getFrom());message.setTo(mail.getTo());message.setText(mail.getText(), true);message.setSubject(mail.getSubject());javaMailSender.send(mimeMessage);} catch (MessagingException e) {e.printStackTrace();}}/*** 發送帶附件的郵件** @param mail 郵件*/public void handleAttachmentMail(Mail mail) {MimeMessage mimeMessage = javaMailSender.createMimeMessage();MimeMessageHelper message = null;try {message = new MimeMessageHelper(mimeMessage, true);message.setFrom(mail.getFrom());message.setTo(mail.getTo());message.setText(mail.getText(), true);message.setSubject(mail.getSubject());FileSystemResource resource = new FileSystemResource(mail.getAttachment());String fileName = mail.getAttachment().substring(mail.getAttachment().lastIndexOf(File.separator) + 1);message.addAttachment(fileName, resource);javaMailSender.send(mimeMessage);} catch (MessagingException e) {e.printStackTrace();}}/*** 郵件發送策略* <p>根據用戶指定郵件的類型執行相應的發送策略</p>** @param mail 郵件實體* @param type 發送的類型*/public abstract void send(Mail mail, MailType type);/*** <p>此方法表示,如果不指定類型的話,則為默認類型,具體什么類型由子類決定</p>** @param mail 郵件實體*/public abstract void send(Mail mail); }

5. 郵件發送工具類

郵件發送的策略,繼承自抽象類。

package com.breez.awesome.utils.mail;import org.springframework.stereotype.Component;/*** 郵件發送工具包[原創]** @author XinLiu* @email lx90352@163.com* @since 2021/9/21*/ @Component public class MailUtil extends AbstractMail {/*** 郵件發送策略* <p>根據用戶指定郵件的類型執行相應的發送策略</p>** @param mail 郵件實體* @param type 發送的類型*/@Overridepublic void send(Mail mail, MailType type) {switch (type) {case SIMPLE:super.handleSimpleMail(mail);break;case HTML:super.handleHtmlMail(mail);break;case ATTACHMENT:super.handleAttachmentMail(mail);break;}}/*** <p>此方法表示,如果不指定類型的話,則為默認類型,默認為簡單類型</p>** @param mail 郵件實體*/@Overridepublic void send(Mail mail) {send(mail, MailType.SIMPLE);} }

6. 如何使用

發送簡單類型郵件

mailUtil.send(mail, MailType.SIMPLE)

發送支持HTML格式的郵件

mailUtil.send(mail, MailType.HTML)

發送支持帶有附件的郵件

mailUtil.send(mail, MailType.ATTACHMENT)

總結

抽象類還可以再進行封裝,讓代碼更少。

總結

以上是生活随笔為你收集整理的封装一个邮件发送工具类,一个字,巴适的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 高清无码一区二区在线观看吞精 | 国产高清在线视频观看 | 国产做爰全免费的视频软件 | 韩日一区 | 午夜在线不卡 | 美女下部无遮挡 | 国产91在线高潮白浆在线观看 | 日韩啪啪网 | 欧美在线激情视频 | 国语av | 黄色三级在线视频 | 中文字幕在线观看的网站 | 91伦理| 全部孕妇毛片丰满孕妇孕交 | 日韩精品中文字幕一区二区三区 | 美国性生活大片 | 强行挺进皇后紧窄湿润小说 | 黄色的网站在线观看 | 久久夜精 | 国产极品999 | aaa毛片视频| 欧美成人一区二免费视频软件 | 亚洲国产成人一区二区 | heyzo国产| 欧美亚洲91| 丰满人妻熟妇乱偷人无码 | 亚洲精品乱码久久久久久蜜桃91 | 免费在线视频一区 | 99中文字幕 | 熟女人妻一区二区三区免费看 | 日韩免费观看 | 免费视频日韩 | 一区二区三区国 | 日韩成人精品在线观看 | 精品福利视频一区二区 | 九色首页 | 99热久 | 1024你懂的日韩 | 免费欧美黄色片 | 国产成人自拍网 | 日韩欧美第一页 | 久久久精品亚洲 | 国产婷婷色一区二区 | 香蕉视频免费在线看 | 调教女m荡骚贱淫故事 | 亚洲欧美综合在线观看 | 啪啪网页 | 综合性色 | 2022国产精品 | av网站大全在线观看 | 久久国色| 国产你懂 | 久久久精品久久久久久 | 欧美一级不卡 | 国产欧美在线一区 | 亚洲欧美bt | 毛片一区二区 | 免费香蕉视频 | 国产伦精品一区二区三区高清版禁 | 欧美黄色免费网站 | av中文字幕av | 欧美国产在线看 | 一区二区三区精品视频在线观看 | 黄色九九| 日韩欧美网 | 精品成人av一区二区三区 | 91蝌蚪九色 | 无码一区二区三区在线 | 中文字幕+乱码+中文字幕一区 | 免费观看视频一区二区 | 午夜影院18 | 亚洲风情av| 影音先锋中文字幕在线视频 | 亚洲大色网| 色啪网站| 性色免费视频 | 欧美区国产区 | 中文字幕精品一二三四五六七八 | 四虎在线免费视频 | 91精品色 | 国产精品国产三级国产在线观看 | 国内自拍欧美 | 天堂中文在线播放 | 97视频在线| 亚洲va天堂va国产va久 | 亚洲性影院 | 一区二区三区在线播放视频 | 成人在线视频播放 | 亚洲一区二区三区婷婷 | 亚洲精品成人无码 | 九九热re| 亚洲熟妇av一区二区三区漫画 | 国产日韩一区 | 一区视频网站 | 国产午夜无码视频在线观看 | 日本免费一区二区三区四区 | 日韩在线第三页 | 欧美囗交做爰视频 | 亚洲av最新在线网址 |