最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java使用JavaMail API實(shí)現(xiàn)原生郵箱發(fā)送功能的方法

 更新時(shí)間:2026年02月26日 09:41:24   作者:長(zhǎng)路??  
文章介紹了如何使用JavaMailAPI在Java后端實(shí)現(xiàn)原生郵箱發(fā)送功能,包括配置郵件服務(wù)器、獲取校驗(yàn)碼以及解決SSL握手異常的問(wèn)題,需要的朋友可以參考下

前言

涵蓋技術(shù)內(nèi)容:Java后端、大數(shù)據(jù)、算法、分布式微服務(wù)、中間件、前端、運(yùn)維等。

原生集成郵箱實(shí)現(xiàn)

引入pom.xml

郵件發(fā)送借助javax.mail工具類(lèi)

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.7</version>
</dependency>

前提配置

1、163、新浪郵箱不需要 SSL 加密,QQ 郵箱需要 SSL 加密,在下面實(shí)現(xiàn)中開(kāi)啟了SSL加密。

2、若是想要發(fā)送郵件得需要先登陸到對(duì)應(yīng)的郵件服務(wù)器,那么必不可少的就是校驗(yàn)碼,如何獲取校驗(yàn)碼如下:

設(shè)置-開(kāi)啟,根據(jù)如下開(kāi)啟指示開(kāi)啟即可獲取校驗(yàn)碼:

功能實(shí)現(xiàn)

package com.dtstack.knowledge.ai.server.util;

import com.sun.mail.util.MailSSLSocketFactory;

import javax.mail.*;
import javax.mail.Message;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;

/**
 * @ClassName MailUtil
 * @Author ChangLu
 * @Date 2022/1/25 18:28
 * @Description TODO
 */
public class MailUtil {

    public static void main(String[] args) throws Exception {
        sendQQMail("939974883@qq.com", "changlu@dtstack.com", "sdfdsfdsdfds");
    }

    private static SimpleDateFormat DATE_FORMAT_TOOL = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    /**
     * 向指定qq發(fā)送郵件
     * @param FROM 發(fā)送者qq
     * @param to 接受者qq
     * @param code 發(fā)送者qq的授權(quán)碼(需要去qq郵箱進(jìn)行授權(quán))
     * @throws Exception
     */
    public static void sendQQMail(String FROM, String TO, String code) throws Exception {
        Properties props = new Properties();

        // 開(kāi)啟debug調(diào)試
        props.setProperty("mail.debug", "true");
        // 發(fā)送服務(wù)器需要身份驗(yàn)證
        props.setProperty("mail.smtp.auth", "true");
        // 設(shè)置郵件服務(wù)器主機(jī)名
        props.setProperty("mail.host", "smtp.qq.com");
        // 發(fā)送郵件協(xié)議名稱(chēng)
        props.setProperty("mail.transport.protocol", "smtp");

        // 針對(duì) JDK 17 的 SSL 協(xié)議配置
        props.setProperty("mail.smtp.ssl.protocols", "TLSv1.2");

        //開(kāi)啟SSL加密
        MailSSLSocketFactory sf = new MailSSLSocketFactory();
        sf.setTrustAllHosts(true);
        props.put("mail.smtp.ssl.enable", "true");
        props.put("mail.smtp.ssl.socketFactory", sf);

        Session session = Session.getInstance(props);

        //消息對(duì)象配置信息
        Message msg = new MimeMessage(session);
        //設(shè)置標(biāo)題名稱(chēng)
        msg.setSubject("測(cè)試");
        StringBuilder builder = new StringBuilder();
        builder.append("\n " + "<h1>歡迎你加入智蜂工作室!</h1>");
        builder.append("\n時(shí)間 " + DATE_FORMAT_TOOL.format(new Date()));
        //設(shè)置短信內(nèi)容(setContent可以設(shè)置發(fā)送內(nèi)容的類(lèi)型格式)
        msg.setContent(builder.toString(), "text/html;charset=UTF-8");
        msg.setFrom(new InternetAddress(FROM));//發(fā)送人的郵箱地址

        //進(jìn)行連接
        Transport transport = session.getTransport();
        transport.connect("smtp.qq.com", FROM, code);
        transport.sendMessage(msg, new Address[] { new InternetAddress(TO) });//接收人的郵箱地址
        transport.close();
    }


}

效果:

問(wèn)題解決

報(bào)錯(cuò):javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

解決方式:

補(bǔ)充配置項(xiàng)參數(shù):

// 針對(duì) JDK 17 的 SSL 協(xié)議配置
props.setProperty("mail.smtp.ssl.protocols", "TLSv1.2");

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

相關(guān)文章

  • MyBatis?多表聯(lián)合查詢(xún)及優(yōu)化方法

    MyBatis?多表聯(lián)合查詢(xún)及優(yōu)化方法

    大家都知道Hibernate 是全自動(dòng)的數(shù)據(jù)庫(kù)持久層框架,它可以通過(guò)實(shí)體來(lái)映射數(shù)據(jù)庫(kù),通過(guò)設(shè)置一對(duì)多、多對(duì)一、一對(duì)一、多對(duì)多的關(guān)聯(lián)來(lái)實(shí)現(xiàn)聯(lián)合查詢(xún),接下來(lái)通過(guò)本文給大家介紹MyBatis?多表聯(lián)合查詢(xún)及優(yōu)化,需要的朋友可以參考下
    2022-08-08
  • SpringBoot獲取當(dāng)前運(yùn)行環(huán)境三種方式小結(jié)

    SpringBoot獲取當(dāng)前運(yùn)行環(huán)境三種方式小結(jié)

    在使用SpringBoot過(guò)程中,我們只需要引入相關(guān)依賴(lài),然后在main方法中調(diào)用SpringBootApplication.run(應(yīng)用程序啟動(dòng)類(lèi).class)方法即可,那么SpringBoot是如何獲取當(dāng)前運(yùn)行環(huán)境呢,接下來(lái)由小編給大家介紹一下SpringBoot獲取當(dāng)前運(yùn)行環(huán)境三種方式,需要的朋友可以參考下
    2024-01-01
  • 通過(guò)Java實(shí)現(xiàn)自己動(dòng)手寫(xiě)ls命令

    通過(guò)Java實(shí)現(xiàn)自己動(dòng)手寫(xiě)ls命令

    在前面的文章中,我們仔細(xì)的介紹了關(guān)于ls命令的使用和輸出結(jié)果,在本篇文章當(dāng)中我們用Java代碼自己實(shí)現(xiàn)ls命令,更加深入的了解ls命令
    2022-10-10
  • 基于Java實(shí)現(xiàn)空間濾波完整代碼

    基于Java實(shí)現(xiàn)空間濾波完整代碼

    空間濾波是一種采用濾波處理的影像增強(qiáng)方法。其理論基礎(chǔ)是空間卷積和空間相關(guān)。這篇文章主要介紹了基于Java的空間濾波代碼實(shí)現(xiàn),需要的朋友可以參考下
    2021-08-08
  • 【IntelliJ IDEA】Maven構(gòu)建自己的第一個(gè)Java后臺(tái)的方法

    【IntelliJ IDEA】Maven構(gòu)建自己的第一個(gè)Java后臺(tái)的方法

    本篇文章主要介紹了Maven構(gòu)建自己的第一個(gè)Java后臺(tái)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • 淺談Java list.remove( )方法需要注意的兩個(gè)坑

    淺談Java list.remove( )方法需要注意的兩個(gè)坑

    這篇文章主要介紹了淺談Java list.remove( )方法需要注意的兩個(gè)坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • 對(duì)Spring中bean線程安全的討論

    對(duì)Spring中bean線程安全的討論

    這篇文章主要介紹了對(duì)Spring中bean線程安全的討論,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • Java常用字節(jié)流和字符流實(shí)例匯總

    Java常用字節(jié)流和字符流實(shí)例匯總

    這篇文章主要介紹了Java常用字節(jié)流和字符流實(shí)例匯總,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Lucene?索引刪除策略源碼解析

    Lucene?索引刪除策略源碼解析

    這篇文章主要為大家介紹了Lucene?索引刪除策略源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • java字符串與字符數(shù)組之間的互轉(zhuǎn)方式

    java字符串與字符數(shù)組之間的互轉(zhuǎn)方式

    這篇文章主要介紹了java字符串與字符數(shù)組之間的互轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-05-05

最新評(píng)論

金乡县| 嘉兴市| 南汇区| 宿松县| 尼木县| 搜索| 同江市| 双柏县| 濮阳市| 什邡市| 永仁县| 井研县| 合川市| 县级市| 广南县| 堆龙德庆县| 建始县| 潼南县| 江阴市| 栾城县| 额尔古纳市| 济宁市| 赞皇县| 金堂县| 霸州市| 塔城市| 徐闻县| 高邮市| 库尔勒市| 青河县| 孟州市| 宁南县| 东台市| 肃北| 宜兴市| 邛崃市| 布尔津县| 浙江省| 荆门市| 阳江市| 尼玛县|