欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Java實(shí)現(xiàn)QQ郵箱發(fā)送工具類

 更新時(shí)間:2023年12月17日 10:52:43   作者:大白貓~  
我們?cè)谌粘i_發(fā)中,需要實(shí)現(xiàn)一個(gè)對(duì)郵箱的發(fā)送,今天就實(shí)現(xiàn)郵箱的發(fā)送工具類,只需要一些注冊(cè)郵箱之后的配置即可,感興趣的小伙伴可以了解下

我們?cè)谌粘i_發(fā)中,需要實(shí)現(xiàn)一個(gè)對(duì)郵箱的發(fā)送,今天就實(shí)現(xiàn)郵箱的發(fā)送工具類,只需要一些注冊(cè)郵箱之后的配置即可,我這邊使用的是qq郵箱

0.加上依賴

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

1.配置yml文件

需要到官網(wǎng)上去注冊(cè),鏈接地址:https://mail.qq.com/

spring:                         # Spring Boot應(yīng)用程序配置的根節(jié)點(diǎn)
   mail:                        # 郵件相關(guān)配置
    username:                   # 你自己的QQ郵箱的用戶名,需要填寫你的QQ郵箱地址
    password:                   # 你自己的QQ郵箱的密鑰/密碼,需要填寫你的QQ郵箱登錄密碼
    host: smtp.qq.com            # SMTP服務(wù)器主機(jī)名,這里設(shè)置為QQ郵箱的SMTP服務(wù)器
    port: 465                   # SMTP服務(wù)器端口,通常情況下使用SSL的SMTP協(xié)議使用465端口
    protocol: smtp              # 使用SMTP協(xié)議發(fā)送郵件
 
    properties:                 # 郵件相關(guān)的屬性配置
      mail:                     # 郵件協(xié)議屬性配置
        smtp:                   # SMTP協(xié)議屬性配置
          ssl:                  # SSL/TLS屬性配置
            enable: true         # 啟用SSL,表示使用加密傳輸郵件
          auth: true             # 啟用SMTP身份驗(yàn)證,需要提供用戶名和密碼
          starttls:             # STARTTLS屬性配置,用于在未加密連接上啟用TLS
            enable: true        # 啟用STARTTLS
            required: true      # 要求必須使用STARTTLS
          socketFactory:        # Socket工廠屬性配置,用于SSL連接
            port: 465           # SSL連接的端口,與SMTP服務(wù)器的端口一致
            class: javax.net.ssl.SSLSocketFactory  # 使用的Socket工廠類,通常用于SSL連接
 
# 請(qǐng)確保填寫你自己的QQ郵箱地址和密碼,以及確保QQ郵箱允許使用SMTP服務(wù)來(lái)發(fā)送郵件

2.寫一個(gè)發(fā)送郵箱工具類

@Component
public class MailUtil {
 
    private static MailUtil INSTANCE = new MailUtil();
 
    @Resource
    JavaMailSender mailSender;
 
    @Resource
    JavaMailSender javaMailSender;
 
    @PostConstruct
    public void init(){
        INSTANCE.mailSender = mailSender;
    }
 
    /**
     * 發(fā)送簡(jiǎn)單郵件
     *
     * @param subject 主題
     * @param content 內(nèi)容
     * @param from 發(fā)件人
     * @param to      收件人
     */
    public void sendSimpleMail(String subject,String content,String from,String[] to){
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom(from);
        message.setTo(to);
        // 主題
        message.setSubject(subject);
        // 郵件正文
        message.setText(content);
        message.setSentDate(new Date());
        // 發(fā)送郵件
        INSTANCE.mailSender.send(message);
    }
    public void sendMimeMail(String subject,String content,String from,String[] to) throws MessagingException {
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        // 構(gòu)建一個(gè)郵件對(duì)象
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
        // 設(shè)置郵件主題
        helper.setSubject(subject);
        // 設(shè)置郵件發(fā)送者,這個(gè)跟application.yml中設(shè)置的要一致
        helper.setFrom(from);
        helper.setTo(to);
        // 設(shè)置郵件發(fā)送日期
        helper.setSentDate(new Date());
        // 設(shè)置郵件的正文 true:是html文件
        helper.setText(content,true);
        // 發(fā)送郵件
        javaMailSender.send(mimeMessage);
    }
 
}

3.編寫controller控制器接口

@RestController
@Api(tags = "郵箱發(fā)送")
@RequestMapping("/mail")
public class MailServlet {
    @Resource
    private MailUtil mailUtil;
 
    @PostMapping("/to")
    @ApiOperation("發(fā)送郵件")
    @ApiImplicitParams({@ApiImplicitParam(name = "subject", value = "郵件主題"), @ApiImplicitParam(name = "content", value = "郵件內(nèi)容")
            , @ApiImplicitParam(name = "from", value = "發(fā)送郵件的QQ郵箱"), @ApiImplicitParam(name = "to", value = "要發(fā)送到的QQ郵箱,用,隔開")})
    public R to(String subject, String content, String from, String to) {
        String[] split = to.split(",");
        try {
            mailUtil.sendSimpleMail(subject, content, from, split);
            return R.ok("發(fā)送成功");
        } catch (Exception e) {
            e.fillInStackTrace();
            return R.fail("發(fā)送失敗");
        }
    }
 
    @PostMapping("/tof")
    @ApiOperation("發(fā)送富文本郵件")
    @ApiImplicitParams({@ApiImplicitParam(name = "subject", value = "郵件主題"), @ApiImplicitParam(name = "content", value = "郵件內(nèi)容<html>格式")
            , @ApiImplicitParam(name = "from", value = "發(fā)送郵件的QQ郵箱"), @ApiImplicitParam(name = "to", value = "要發(fā)送到的QQ郵箱,用,隔開")})
    public R tof(String subject, String content, String from, String to) {
        String[] split = to.split(",");
        try {
            mailUtil.sendMimeMail(subject, content, from, split);
            return R.ok("發(fā)送成功");
        } catch (Exception e) {
            e.fillInStackTrace();
            return R.fail("發(fā)送失敗");
        }
    }
}

以上就是基于Java實(shí)現(xiàn)QQ郵箱發(fā)送工具類的詳細(xì)內(nèi)容,更多關(guān)于Java郵箱發(fā)送的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java中用POI實(shí)現(xiàn)將數(shù)據(jù)導(dǎo)出到Excel

    Java中用POI實(shí)現(xiàn)將數(shù)據(jù)導(dǎo)出到Excel

    這篇文章主要介紹了Java中用POI實(shí)現(xiàn)將數(shù)據(jù)導(dǎo)出到Excel,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • 淺談Springboot實(shí)現(xiàn)攔截器的兩種方式

    淺談Springboot實(shí)現(xiàn)攔截器的兩種方式

    本文詳細(xì)的介紹了Springboot攔截器的兩種方式實(shí)現(xiàn),一種就是用攔截器,一種就是過濾器,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • SpringBoot同時(shí)支持HTTPS與HTTP的實(shí)現(xiàn)示例

    SpringBoot同時(shí)支持HTTPS與HTTP的實(shí)現(xiàn)示例

    本文主要介紹了SpringBoot同時(shí)支持HTTPS與HTTP的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 2020 IDEA安裝教程與激活(idea2020激活碼)

    2020 IDEA安裝教程與激活(idea2020激活碼)

    這篇文章主要介紹了2020 IDEA安裝教程與激活(idea2020激活碼),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Springboot pom項(xiàng)目間接依賴包版本與預(yù)期不符原因解決分析

    Springboot pom項(xiàng)目間接依賴包版本與預(yù)期不符原因解決分析

    這篇文章主要介紹了Springboot pom項(xiàng)目間接依賴包版本與預(yù)期不符原因解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • java實(shí)現(xiàn)按層遍歷二叉樹

    java實(shí)現(xiàn)按層遍歷二叉樹

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)按層遍歷二叉樹,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • JavaSE的邏輯控制你了解嗎

    JavaSE的邏輯控制你了解嗎

    這篇文章主要為大家詳細(xì)介紹了JavaSE的邏輯控制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • SpringMVC的@InitBinder參數(shù)轉(zhuǎn)換代碼實(shí)例

    SpringMVC的@InitBinder參數(shù)轉(zhuǎn)換代碼實(shí)例

    這篇文章主要介紹了SpringMVC的@InitBinder參數(shù)轉(zhuǎn)換代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 幾個(gè)好用Maven鏡像倉(cāng)庫(kù)地址(小結(jié))

    幾個(gè)好用Maven鏡像倉(cāng)庫(kù)地址(小結(jié))

    這篇文章主要介紹了幾個(gè)好用Maven鏡像倉(cāng)庫(kù)地址(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • MyBatis自定義resultMap三種映射關(guān)系示例詳解

    MyBatis自定義resultMap三種映射關(guān)系示例詳解

    這篇文章主要介紹了MyBatis自定義resultMap三種映射關(guān)系,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08

最新評(píng)論