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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Boot 之发送邮件

發(fā)布時(shí)間:2025/5/22 javascript 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot 之发送邮件 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

目錄

Spring Boot 之發(fā)送郵件
簡介
API
配置
實(shí)戰(zhàn)
完整示例
引申和引用

Spring Boot 之發(fā)送郵件

  • 簡介
  • API
  • 配置
  • 實(shí)戰(zhàn)
    • 引入依賴
    • 配置郵件屬性
    • Java 代碼
  • 完整示例
  • 引申和引用

簡介

Spring Boot 收發(fā)郵件最簡便方式是通過?spring-boot-starter-mail。

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

spring-boot-starter-mail 本質(zhì)上是使用 JavaMail(javax.mail)。如果想對 JavaMail 有進(jìn)一步了解,可以參考:JavaMail 使用小結(jié)

API

Spring Framework 提供了一個(gè)使用?JavaMailSender?接口發(fā)送電子郵件的簡單抽象,這是發(fā)送郵件的核心 API。

JavaMailSender?接口提供的 API 如下:

配置

Spring Boot 為?JavaMailSender?提供了自動配置以及啟動器模塊。

如果?spring.mail.host?和相關(guān)庫(由 spring-boot-starter-mail 定義)可用,則 Spring Boot 會創(chuàng)建默認(rèn)?JavaMailSender(如果不存在)。可以通過?spring.mail?命名空間中的配置項(xiàng)進(jìn)一步自定義發(fā)件人。
特別是,某些默認(rèn)超時(shí)值是無限的,您可能希望更改它以避免線程被無響應(yīng)的郵件服務(wù)器阻塞,如以下示例所示:

spring.mail.properties.mail.smtp.connectiontimeout=5000 spring.mail.properties.mail.smtp.timeout=3000 spring.mail.properties.mail.smtp.writetimeout=5000

也可以使用 JNDI 中的現(xiàn)有會話配置?JavaMailSender:

spring.mail.jndi-name=mail/Session

以下為 Spring Boot 關(guān)于 Mail 的配置:

有關(guān)更多詳細(xì)信息,請參閱?MailProperties。

# Email (MailProperties) spring.mail.default-encoding=UTF-8 # Default MimeMessage encoding. spring.mail.host= # SMTP server host. For instance, `smtp.example.com`. spring.mail.jndi-name= # Session JNDI name. When set, takes precedence over other Session settings. spring.mail.password= # Login password of the SMTP server. spring.mail.port= # SMTP server port. spring.mail.properties.*= # Additional JavaMail Session properties. spring.mail.protocol=smtp # Protocol used by the SMTP server. spring.mail.test-connection=false # Whether to test that the mail server is available on startup. spring.mail.username= # Login user of the SMTP server.

實(shí)戰(zhàn)

引入依賴

<dependencies><dependency><groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>com.github.dozermapper</groupId> <artifactId>dozer-spring-boot-starter</artifactId> <version>6.4.0</version> </dependency> </dependencies>

配置郵件屬性

在?src/main/resources?目錄下添加?application-163.properties?配置文件,內(nèi)容如下:

spring.mail.host = smtp.163.com spring.mail.username = xxxxxx spring.mail.password = xxxxxx spring.mail.properties.mail.smtp.auth = true spring.mail.properties.mail.smtp.starttls.enable = true spring.mail.properties.mail.smtp.starttls.required = true spring.mail.default-encoding = UTF-8 mail.domain = 163.com mail.from = ${spring.mail.username}@${mail.domain}

注:需替換有效的?spring.mail.username、spring.mail.password。

application-163.properties?配置文件表示使用 163 郵箱時(shí)的配置,為了使之生效,需要通過?spring.profiles.active = 163?來激活它。

在?src/main/resources?目錄下添加?application.properties?配置文件,內(nèi)容如下:

spring.profiles.active = 163

Java 代碼

首先,需要讀取部分配置屬性,方法如下:

import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import org.springframework.validation.annotation.Validated;@Validated @Component @ConfigurationProperties(prefix = "mail") public class MailProperties { private String domain; private String from; public String getDomain() { return domain; } public void setDomain(String domain) { this.domain = domain; } public String getFrom() { return from; } public void setFrom(String from) { this.from = from; } }

接著,定義一個(gè)郵件參數(shù)實(shí)體類(使用 lombok 簡化了 getter、setter):

import lombok.Data; import java.util.Date;@Data public class MailDTO { private String from; private String replyTo; private String[] to; private String[] cc; private String[] bcc; private Date sentDate; private String subject; private String text; private String[] filenames; }

接著,實(shí)現(xiàn)發(fā)送郵件的功能接口:

import com.github.dozermapper.core.Mapper; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service; import javax.mail.MessagingException; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import java.io.IOException; @Service public class MailService { private final Logger log = LoggerFactory.getLogger(this.getClass()); @Autowired private MailProperties mailProperties; @Autowired private JavaMailSender javaMailSender; @Autowired private Mapper mapper; public void sendSimpleMailMessage(MailDTO mailDTO) { SimpleMailMessage simpleMailMessage = mapper.map(mailDTO, SimpleMailMessage.class); if (StringUtils.isEmpty(mailDTO.getFrom())) { mailDTO.setFrom(mailProperties.getFrom()); } javaMailSender.send(simpleMailMessage); } public void sendMimeMessage(MailDTO mailDTO) { MimeMessage mimeMessage = javaMailSender.createMimeMessage(); MimeMessageHelper messageHelper; try { messageHelper = new MimeMessageHelper(mimeMessage, true); if (StringUtils.isEmpty(mailDTO.getFrom())) { messageHelper.setFrom(mailProperties.getFrom()); } messageHelper.setTo(mailDTO.getTo()); messageHelper.setSubject(mailDTO.getSubject()); mimeMessage = messageHelper.getMimeMessage(); MimeBodyPart mimeBodyPart = new MimeBodyPart(); mimeBodyPart.setContent(mailDTO.getText(), "text/html;charset=UTF-8"); // 描述數(shù)據(jù)關(guān)系 MimeMultipart mm = new MimeMultipart(); mm.setSubType("related"); mm.addBodyPart(mimeBodyPart); // 添加郵件附件 for (String filename : mailDTO.getFilenames()) { MimeBodyPart attachPart = new MimeBodyPart(); try { attachPart.attachFile(filename); } catch (IOException e) { e.printStackTrace(); } mm.addBodyPart(attachPart); } mimeMessage.setContent(mm); mimeMessage.saveChanges(); } catch (MessagingException e) { e.printStackTrace(); } javaMailSender.send(mimeMessage); } }

完整示例

完整示例:源碼

使用方法:

  • 先替換配置?application-${profile}.properties?中的?spring.mail.username(發(fā)件人郵箱)?、spring.mail.password(發(fā)件人郵箱密碼)
  • 然后在?io.github.dunwu.springboot.MailServiceTests?中替換?TO(收件人)、CC(抄送人)。
  • 運(yùn)行?io.github.dunwu.springboot.MailServiceTests?以測試郵件收發(fā)。
  • 引申和引用

    引申

    • Spring Boot 教程

    參考

    • Spring Boot 官方文檔之 Sending Email

    轉(zhuǎn)載于:https://www.cnblogs.com/williamjie/p/10250710.html

    總結(jié)

    以上是生活随笔為你收集整理的Spring Boot 之发送邮件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 中文字幕一区二区人妻 | 成人午夜在线观看 | av成人免费观看 | 久久精品无码av | 免费的黄色大片 | 日韩一区二区三区免费在线观看 | 精品一区二区三区三区 | 夜色网 | 亚洲精品大片 | 天天视频天天爽 | 欧美一区二区三区成人精品 | 国产精品视频 | 欧美特级特黄aaaaaa在线看 | 欧美午夜精品一区 | 日女人免费视频 | 91久久综合 | 天天天色 | 成人午夜av | 欧美一区二区福利 | 丰满人妻一区二区三区53 | 欧美成网站 | 精品久久影院 | 毛片基地站 | 亚洲无av在线中文字幕 | 黄色一级片一级片 | 国产欧美一区二区三区精华液好吗 | 麻豆精品av | 蜜臀av色欲a片无码精品一区 | 国产三级直播 | 久久久久亚洲av无码专区 | 亚洲伊人网站 | 99视频在线精品 | 91片黄在线观 | 成人午夜视频在线 | 亚洲精品视频一区二区三区 | 超碰pron| 亚洲狼人干 | 青青草福利视频 | 无码gogo大胆啪啪艺术 | 亚洲色欧美另类 | 久久精品视频5 | 中文字幕女同 | 先锋影音av资源网 | 免费看日产一区二区三区 | 亚洲国产精品女人久久久 | av手机天堂网 | 九九视频在线播放 | 激情av在线 | 欧美日韩国产综合网 | 日韩第一页在线 | 黑人一级| 欧美一区二区久久 | 中文字幕无线精品亚洲乱码一区 | julia一区| 成人一区二区电影 | 亚洲图片视频小说 | 精品麻豆视频 | 在线观看日韩中文字幕 | 91久久精品日日躁夜夜躁欧美 | 懂色av粉嫩av蜜乳av | 一级国产精品 | ,午夜性刺激免费看视频 | 免费人妻一区二区三区 | 超碰香蕉 | 亚洲第一福利网站 | 在线成年人视频 | 国产成人自拍视频在线 | 国产成人精品123区免费视频 | 诱惑の诱惑筱田优在线播放 | 已婚少妇美妙人妻系列 | 色图一区 | 色男人av | 一级黄色片在线看 | 免费看黄色三级三级 | 美女又大又黄 | 麻豆射区 | 成人在线观看h | 一区二区免费av | 免费欧美在线 | 亚洲欧美成人综合 | 好看的中文字幕 | 草久久av | 中字幕视频在线永久在线观看免费 | 69人人 | 男女搞黄网站 | 99精品视频免费版的特色功能 | 劲爆欧美第一页 | 日韩在线视频播放 | 理论片第一页 | 欧美成人免费一级人片100 | 欧美精品一区二区三区蜜臀 | 污污网站在线免费观看 | 亚洲免费黄网 | 亚洲成人久久精品 | 久久亚洲伊人 | 双性懵懂美人被强制调教 | 国产精品久久久久久久一区二区 | 尤物视频在线观看免费 | 三级中文字幕在线 |