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

java實(shí)現(xiàn)Google郵箱SMTP協(xié)議的示例代碼

 更新時(shí)間:2025年06月12日 10:24:55   作者:Lin_XXiang  
這篇文章主要為大家詳細(xì)介紹了如何使用java實(shí)現(xiàn)Google郵箱SMTP協(xié)議,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

一、開通Google的SMTP協(xié)議

在谷歌郵箱中開啟IMAP訪問

到google的設(shè)置中開啟兩步驗(yàn)證功能

在到 創(chuàng)建和管理應(yīng)用專用密碼

二、java中實(shí)現(xiàn) 

引入maven 

        <!--郵件-->
        <dependency>
            <groupId>com.sun.mail</groupId>
            <artifactId>javax.mail</artifactId>
            <version>1.6.2</version>
        </dependency>

工具類

import javax.activation.DataHandler;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.util.ByteArrayDataSource;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Properties;
 
/**
 * @author LKX
 * @version 1.0
 * @Description
 * @date 2025-06-11 14:10
 */
public class MailUtils {
 
    public static String USERNAME = "kexianglin261@gmail.com"; //	郵箱發(fā)送賬號(hào)
    public static String PASSWORD = "hrnj tyoi mnie rodo"; //郵箱平臺(tái)的授權(quán)碼
    public static String HOST = "smtp.gmail.com"; // SMTP服務(wù)器地址
    public static String PORT = "587"; //SMTP服務(wù)器端口
    public static Session session = null;
 
    /**
     * 創(chuàng)建Sesssion
     */
    public static void createSession() {
 
        if (session != null) return;
 
        Properties props = new Properties();
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.host", HOST); //SMTP主機(jī)名
        props.put("mail.smtp.port", PORT);
 
        session = Session.getInstance(props,
                new javax.mail.Authenticator() {
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(USERNAME, PASSWORD);
                    }
                });
    }
 
    /**
     * 發(fā)送純文本郵件,單人發(fā)送
     *
     * @param title
     * @param content
     * @param toMail
     */
    public static void postMessage(String title, String content, String toMail) {
        try {
            createSession();
            //構(gòu)造郵件主體
            MimeMessage message = new MimeMessage(session);
            message.setSubject(title);
            message.setText(content);
            message.setFrom(new InternetAddress(USERNAME));
            message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(toMail));
            //發(fā)送
            Transport.send(message);
        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }
    }
 
    /**
     * 發(fā)送帶附件的郵件
     *
     * @param title
     * @param content
     * @param fileName
     * @param filePath
     * @param toMail
     */
    public void postMessageWithFile(String title, String content, String fileName, String filePath, String toMail) {
 
        try {
            createSession();
            //構(gòu)造郵件主體
            MimeMessage message = new MimeMessage(session);
            message.setSubject(title);
            //郵件主體
            BodyPart textPart = new MimeBodyPart();
            textPart.setContent(content, "text/html;charset=utf-8");
            //郵件附件
            BodyPart filePart = new MimeBodyPart();
            filePart.setFileName(fileName);
            filePart.setDataHandler(new DataHandler(new ByteArrayDataSource(Files.readAllBytes(Paths.get(filePath)), "application/octet-stream")));
 
            Multipart multipart = new MimeMultipart();
            multipart.addBodyPart(textPart);
            multipart.addBodyPart(filePart);
            message.setContent(multipart);
 
            message.setFrom(new InternetAddress(USERNAME));
            message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(toMail));
 
            //發(fā)送
            Transport.send(message);
 
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

到此這篇關(guān)于java實(shí)現(xiàn)Google郵箱SMTP協(xié)議的示例代碼的文章就介紹到這了,更多相關(guān)java郵箱SMTP協(xié)議內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring中常用注解的用法

    Spring中常用注解的用法

    這篇文章主要介紹了Spring中常用注解的用法,Spring注解方式減少了配置文件內(nèi)容,更加便于管理,并且使用注解可以大大提高了開發(fā)效率,注解本身是沒有功能的,和xml一樣,注解和xml都是一種元數(shù)據(jù),元數(shù)據(jù)即解釋數(shù)據(jù)的數(shù)據(jù),也就是所謂的配置,需要的朋友可以參考下
    2023-08-08
  • java開發(fā)主流定時(shí)任務(wù)解決方案全橫評(píng)詳解

    java開發(fā)主流定時(shí)任務(wù)解決方案全橫評(píng)詳解

    這篇文章主要為大家介紹了java開發(fā)主流定時(shí)任務(wù)解決方案全橫評(píng)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Eclipse中改變默認(rèn)的workspace的方法及說明詳解

    Eclipse中改變默認(rèn)的workspace的方法及說明詳解

    eclipse中改變默然的workspace的方法有哪幾種呢?接下來腳本之家小編給大家介紹Eclipse中改變默認(rèn)的workspace的方法及說明,對eclipse改變workspace相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-04-04
  • Spring Boot 實(shí)現(xiàn)敏感詞及特殊字符過濾處理

    Spring Boot 實(shí)現(xiàn)敏感詞及特殊字符過濾處理

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)敏感詞及特殊字符過濾處理方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • IDEA中使用Typora編輯md文件的方法

    IDEA中使用Typora編輯md文件的方法

    這篇文章主要介紹了IDEA中使用Typora編輯md文件的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • SpringDataRedis簡單使用示例代碼

    SpringDataRedis簡單使用示例代碼

    這篇文章主要介紹了SpringDataRedis簡單使用,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • 一起來學(xué)習(xí)Java的棧和隊(duì)列

    一起來學(xué)習(xí)Java的棧和隊(duì)列

    這篇文章主要為大家詳細(xì)介紹了Java的棧和隊(duì)列,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • JavaWeb文件上傳下載實(shí)例講解(酷炫的文件上傳技術(shù))

    JavaWeb文件上傳下載實(shí)例講解(酷炫的文件上傳技術(shù))

    在Web應(yīng)用系統(tǒng)開發(fā)中,文件上傳功能是非常常用的功能,今天來主要講講JavaWeb中的文件上傳功能的相關(guān)技術(shù)實(shí)現(xiàn),本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧
    2016-11-11
  • Java SPI模塊化解耦的技術(shù)指南

    Java SPI模塊化解耦的技術(shù)指南

    Java 的 Service Provider Interface (SPI) 是一種提供模塊化和擴(kuò)展性的方法,使得程序能夠通過動(dòng)態(tài)加載服務(wù)實(shí)現(xiàn)類來實(shí)現(xiàn)解耦,本文將詳細(xì)介紹 Java SPI 的機(jī)制、應(yīng)用場景及實(shí)現(xiàn)步驟,并通過示例代碼展示如何使用 SPI,需要的朋友可以參考下
    2025-03-03
  • Java Math.round(),Math.ceil(),Math.floor()的區(qū)別詳解

    Java Math.round(),Math.ceil(),Math.floor()的區(qū)別詳解

    這篇文章主要介紹了Java Math.round(),Math.ceil(),Math.floor()的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08

最新評(píng)論

克拉玛依市| 堆龙德庆县| 高碑店市| 永城市| 乡城县| 枣强县| 贵溪市| 泉州市| 德安县| 临清市| 中江县| 洮南市| 伊春市| 栾城县| 湟中县| 建平县| 桑日县| 井研县| 汶上县| 武邑县| 黄浦区| 重庆市| 高清| 大渡口区| 迁西县| 怀宁县| 宜兴市| 万载县| 精河县| 铜山县| 乌兰浩特市| 日喀则市| 龙山县| 竹山县| 黎川县| 渝中区| 凤冈县| 遂溪县| 孝昌县| 天门市| 阳曲县|