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

使用JAVA實(shí)現(xiàn)郵件發(fā)送功能的圖文教程

 更新時(shí)間:2022年06月15日 15:12:10   作者:Wisdom0110  
郵件發(fā)送其實(shí)是一個(gè)非常常見的需求,用戶注冊,找回密碼等地方,都會用到,下面這篇文章主要給大家介紹了關(guān)于使用JAVA實(shí)現(xiàn)郵件發(fā)送功能的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、準(zhǔn)備工作

小編今天以 QQ郵箱 進(jìn)行演示操作。

想要使用代碼操作郵箱發(fā)送郵件,需要在郵箱設(shè)置中申請開通 POP3/SMTP 服務(wù)。

接下來跟著小編的圖文一步一步的操作開通吧!

1.1 登錄網(wǎng)頁QQ郵箱,點(diǎn)擊頁面頂部設(shè)置按鈕。

設(shè)置按鈕

1.2 點(diǎn)擊后會打開郵箱設(shè)置頁面,如下所示,點(diǎn)擊第二欄賬戶。

1.3 點(diǎn)擊后往下拉,直到有如下頁面選項(xiàng)。

選擇POP3/SMTP服務(wù),點(diǎn)擊后面的開啟,此時(shí)會讓你使用綁定郵箱的手機(jī)號發(fā)送短信。

發(fā)送短信

發(fā)送完成后點(diǎn)擊 我已發(fā)送 按鈕,進(jìn)行驗(yàn)證。

1.4 驗(yàn)證完成后會顯示授權(quán)碼(復(fù)制下來,一會要用)

到此,準(zhǔn)備工作已完成!

二、項(xiàng)目中配置郵件發(fā)送功能

2.1 引入發(fā)送郵件相關(guān)依賴

<!--郵件發(fā)送依賴-->
<dependency>
   	<groupId>org.springframework.boot</groupId>
   	<artifactId>spring-boot-starter-mail</artifactId>
</dependency>

引入后,更新maven,下載相關(guān)依賴

更新依賴

2.2 在application.yml文件中添加郵件基本配置

spring: 
  # 發(fā)送郵件配置
  mail:
    host: smtp.qq.com # 配置 smtp 服務(wù)器地址
    port: 587 # smtp 服務(wù)器的端口
    username: 1354720889@qq.com # 配置郵箱用戶名(你的郵箱地址)
    password: batrgddaqykegfss # 配置申請到的授權(quán)碼(剛讓復(fù)制的授權(quán)碼)
    default-encoding: UTF-8 # 配置郵件編碼
    properties:
      mail:
        smtp:
          socketFactoryClass: javax.net.ssl.SSLSocketFactory # 配飾 SSL 加密工廠
        debug: true
    from: 1354720889@qq.com # 發(fā)送方郵件,陪在yml中可方便更改

2.3 為了方便使用,新建一個(gè)操作email的工具類(EmailUtil.java)

封裝郵件工具類是為了方便后續(xù)調(diào)用操作。

package com.clover.utils;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;

/**
 * @ClassName EmailUtil
 * @Description 郵件發(fā)送工具
 * @Author Sophia
 * @Date 2022/4/6 16:06
 */
@Component
public class EmailUtil {

    @Value("${spring.mail.from}") // 從application.yml配置文件中獲取
    private String from; // 發(fā)送發(fā)郵箱地址

    @Autowired
    private JavaMailSender mailSender;

    /**
     * 發(fā)送純文本郵件信息
     *
     * @param to      接收方
     * @param subject 郵件主題
     * @param content 郵件內(nèi)容(發(fā)送內(nèi)容)
     */
    public void sendMessage(String to, String subject, String content) {
        // 創(chuàng)建一個(gè)郵件對象
        SimpleMailMessage msg = new SimpleMailMessage();
        msg.setFrom(from); // 設(shè)置發(fā)送發(fā)
        msg.setTo(to); // 設(shè)置接收方
        msg.setSubject(subject); // 設(shè)置郵件主題
        msg.setText(content); // 設(shè)置郵件內(nèi)容
        // 發(fā)送郵件
        mailSender.send(msg);
    }

    /**
     * 發(fā)送帶附件的郵件信息
     *
     * @param to      接收方
     * @param subject 郵件主題
     * @param content 郵件內(nèi)容(發(fā)送內(nèi)容)
     * @param files 文件數(shù)組 // 可發(fā)送多個(gè)附件
     */
    public void sendMessageCarryFiles(String to, String subject, String content, File[] files) {
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        try {
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
            helper.setFrom(from); // 設(shè)置發(fā)送發(fā)
            helper.setTo(to); // 設(shè)置接收方
            helper.setSubject(subject); // 設(shè)置郵件主題
            helper.setText(content); // 設(shè)置郵件內(nèi)容
            if (files != null && files.length > 0) { // 添加附件(多個(gè))
                for (File file : files) {
                    helper.addAttachment(file.getName(), file);
                }
            }
        } catch (MessagingException e) {
            e.printStackTrace();
        }
        // 發(fā)送郵件
        mailSender.send(mimeMessage);
    }
/**
     * 發(fā)送帶附件的郵件信息
     *
     * @param to      接收方
     * @param subject 郵件主題
     * @param content 郵件內(nèi)容(發(fā)送內(nèi)容)
     * @param file 單個(gè)文件
     */
    public void sendMessageCarryFile(String to, String subject, String content, File file) {
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        try {
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
            helper.setFrom(from); // 設(shè)置發(fā)送發(fā)
            helper.setTo(to); // 設(shè)置接收方
            helper.setSubject(subject); // 設(shè)置郵件主題
            helper.setText(content); // 設(shè)置郵件內(nèi)容
            helper.addAttachment(file.getName(), file); // 單個(gè)附件
        } catch (MessagingException e) {
            e.printStackTrace();
        }
        // 發(fā)送郵件
        mailSender.send(mimeMessage);
    }

    public String getFrom() {
        return from;
    }

    public void setFrom(String from) {
        this.from = from;
    }
}

2.4 測試郵件發(fā)送功能

我使用的SpringBoot項(xiàng)目,因此我在測試類中進(jìn)行測試。

測試類代碼:

package com.clover.api.blogapi;

import com.clover.utils.EmailUtil;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.io.File;

@SpringBootTest
class BlogApiApplicationTests {
    @Autowired
    private EmailUtil emailUtil;

    @Test
    void contextLoads() {
    }

    @Test
    void sendStringEmail() {
        // 測試文本郵件發(fā)送(無附件)
        String to = "1354720990@qq.com";
        String title = "文本郵件發(fā)送測試";
        String content = "文本郵件發(fā)送測試";
        emailUtil.sendMessage(to, title, content);
    }

    @Test
    void sendFileEmail() {
        // 測試單個(gè)附件郵件發(fā)送
        String to = "1354720990@qq.com";
        String title = "單個(gè)附件郵件發(fā)送測試";
        String content = "單個(gè)附件郵件發(fā)送測試";
        File file = new File("D:\\GCH\\Typora\\Linux中常用的查看系統(tǒng)相關(guān)信息命令.md");
        emailUtil.sendMessageCarryFile(to, title, content, file);
    }
    
    @Test
    void sendFilesEmail() {
        // 測試多個(gè)附件郵件發(fā)送
        String to = "1354720990@qq.com";
        String title = "多個(gè)附件郵件發(fā)送測試";
        String content = "多個(gè)附件郵件發(fā)送測試";
        File[] files = new File[2];
        files[0] = new File("C:\\Users\\root\\Desktop\\配置郵箱\\1.png");
        files[1] = new File("C:\\Users\\root\\Desktop\\配置郵箱\\2.png");
        emailUtil.sendMessageCarryFile(to, title, content, files);
    }
}

2.5 測試結(jié)果

郵箱已收到

已收到

2.5.1 文本郵件發(fā)送

文本郵件發(fā)送

2.5.2 單個(gè)附件郵件發(fā)送

單個(gè)附件郵件發(fā)送

2.5.3 多個(gè)附件郵件發(fā)送

多個(gè)附件郵件發(fā)送

到此,使用Java發(fā)送郵件功能就結(jié)束了,伙伴們可以根據(jù)自己的需求進(jìn)行封裝使用。

總結(jié)

到此這篇關(guān)于使用JAVA實(shí)現(xiàn)郵件發(fā)送功能的文章就介紹到這了,更多相關(guān)JAVA郵件發(fā)送功能內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • @RequestBody的使用案例代碼

    @RequestBody的使用案例代碼

    @RequestBody主要用來接收前端傳遞給后端的json字符串中的數(shù)據(jù)的,這篇文章主要介紹了@RequestBody的使用,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • 淺談fastjson的常用使用方法

    淺談fastjson的常用使用方法

    下面小編就為大家?guī)硪黄獪\談fastjson的常用使用方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-08-08
  • Spring Boot 控制層之參數(shù)傳遞方法詳解

    Spring Boot 控制層之參數(shù)傳遞方法詳解

    這篇文章主要介紹了Spring Boot 控制層之參數(shù)傳遞方法詳解,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Java中檢查字符串是否以特定字符結(jié)尾

    Java中檢查字符串是否以特定字符結(jié)尾

    這篇文章主要介紹了Java中檢查字符串是否以特定字符結(jié)尾,文章圍繞主題展開字符串匹配問題,具有一定的參考價(jià)值需要的小伙伴可以參考一下
    2022-06-06
  • @scope("prototype") @loadbalanced注解負(fù)載均衡失效問題

    @scope("prototype") @loadbalanced注解負(fù)載均衡失效問題

    這篇文章主要為大家介紹了@scope("prototype") @loadbalanced注解負(fù)載均衡失效問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • logback的UNDEFINED_PROPERTY屬性源碼執(zhí)行流程解讀

    logback的UNDEFINED_PROPERTY屬性源碼執(zhí)行流程解讀

    這篇文章主要為大家介紹了logback的UNDEFINED_PROPERTY屬性源碼執(zhí)行流程解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • java編程無向圖結(jié)構(gòu)的存儲及DFS操作代碼詳解

    java編程無向圖結(jié)構(gòu)的存儲及DFS操作代碼詳解

    這篇文章主要介紹了java編程無向圖結(jié)構(gòu)的存儲及DFS操作代碼詳解,具有一定借鑒價(jià)值,需要的朋友可以了解下。
    2017-12-12
  • 解決SpringCloud?Feign異步調(diào)用傳參問題

    解決SpringCloud?Feign異步調(diào)用傳參問題

    這篇文章主要介紹了SpringCloud?Feign異步調(diào)用傳參問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • 詳解Spring中的@Scope注解

    詳解Spring中的@Scope注解

    這篇文章主要介紹了詳解Spring中的@Scope注解,@Scope注解是Spring IOC容器中的一個(gè)作用域,在Spring IOC容器中,他用來配置Bean實(shí)例的作用域?qū)ο?需要的朋友可以參考下
    2023-07-07
  • java簡單實(shí)現(xiàn)計(jì)算器

    java簡單實(shí)現(xiàn)計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了java簡單實(shí)現(xiàn)計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12

最新評論