日韩性视频-久久久蜜桃-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)

總結

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

總結

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

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

主站蜘蛛池模板: 日韩网红少妇无码视频香港 | 国产又猛又黄又爽 | 另类尿喷潮videofree | 91玉足脚交嫩脚丫在线播放 | 97一级片 | 久久精品在线播放 | 一区二区成人在线观看 | 日韩av综合在线 | 毛茸茸free性熟hd | 美女精品在线 | 一区二区不卡免费视频 | 岛国精品一区二区三区 | 爱乃なみ加勒比在线播放 | 日本黄色录像 | 蜜臀av在线播放 | 精品一区二区成人免费视频 | wwwxxx在线播放 | 女优视频在线观看 | h片网站在线观看 | 美女视频黄频视频大全 | 国产精品国产精品国产专区不卡 | 日本aⅴ视频 | 国产成人综合亚洲 | 国产欧美激情在线观看 | 免费在线播放视频 | 中文 欧美 日韩 | 日韩a在线| 国产动漫av | 长篇乱肉合集乱500小说日本 | 亚洲天天做 | 成年黄色网 | 亚洲国产成人精品久久久 | 欧美精品成人一区二区在线观看 | 沟厕沟厕近拍高清视频 | 久久伊人免费 | 蜜臂av| 小视频黄色 | 亚洲久草视频 | 免费网站污 | 69av网| 欧美十大老熟艳星 | 91区国产 | 国产精品视频免费播放 | 一区二区三区在线观看 | 日本福利在线 | 午夜在线精品偷拍 | 国产ts人妖调教重口男 | 人妻精品一区一区三区蜜桃91 | 污视频在线观看网址 | 中文字幕少妇在线三级hd | 激情视频一区二区三区 | 黄瓜视频在线观看污 | av福利在线观看 | 亚洲国产精品综合久久久 | 激情瑟瑟| 另类毛片| 成人国产一区二区 | 自偷自拍亚洲 | 插插插日日日 | 久久99久久99精品免观看粉嫩 | 亚洲综合另类小说 | 香港台湾日本三级大全 | 国产又粗又猛又爽又黄的网站 | 国产人成免费视频 | 欧美极品jizzhd欧美爆 | 精品在线99 | 丝袜美腿亚洲综合 | 东方伊甸园av在线 | 开心综合网 | 久久精品牌麻豆国产大山 | 欧美成人三级精品 | 真实人妻互换毛片视频 | 综合久久中文字幕 | 相亲对象是问题学生在线观看 | 欧美黑吊大战白妞 | 国产色无码精品视频国产 | 日本性高潮视频 | 91九色国产ts另类人妖 | 天堂成人av | 黑人精品欧美一区二区蜜桃 | 亚洲AV无码成人精品一区 | 少妇无套内谢久久久久 | 极品新婚夜少妇真紧 | 国产在线播放网站 | av大帝在线 | 成人av激情 | 海量av资源 | 久久国产精品网 | 在线播放毛片 | 久久97精品 | 东京热无码av一区二区 | 亚洲一区二区福利视频 | 亲吻刺激视频 | 岛国精品一区二区 | 4438激情网| www四虎精品视频免费网站 | 日本成人动漫在线观看 | 亚洲欧美视频在线 | 午夜影院在线看 |