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

Java Email郵件發(fā)送簡單實(shí)現(xiàn)介紹

 更新時間:2022年11月05日 14:32:19   作者:OlaiolaiO  
電子郵件從用戶電腦的郵件軟件,例如Outlook,發(fā)送到郵件服務(wù)器上,可能經(jīng)過若干個郵件服務(wù)器的中轉(zhuǎn),最終到達(dá)對方郵件服務(wù)器上,收件方就可以用軟件接收郵件

一、郵件協(xié)議

MTA 和 MDA 這樣的服務(wù)器軟件通常是現(xiàn)成的,我們通常不會關(guān)心這些郵件服務(wù)器的內(nèi)部是如何運(yùn)行 的。更多的需求場景,是需要發(fā)送郵件。例如:促銷商品郵件、驗(yàn)證碼郵件、消息通知郵件等。常見的 郵件協(xié)議有: POP3 、 SMTP 、 IMAP 。

1.POP3

POP3是Post Office Protocol 3的簡稱,即郵局協(xié)議的第3個版本,它規(guī)定怎樣將個人計(jì)算機(jī)連接到Internet的郵件 服務(wù)器和下載電子郵件的電子協(xié)議。它是因特網(wǎng)電子郵件的第一個離線協(xié)議標(biāo)準(zhǔn),POP3允許用戶從服務(wù)器上把 郵件存儲到本地主機(jī)(即自己的計(jì)算機(jī))上,同時刪除保存在郵件服務(wù)器上的郵件,而POP3服務(wù)器則是遵循 POP3協(xié)議的接收郵件服務(wù)器,用來接收電子郵件的。

2.SMTP

SMTP 的全稱是“Simple Mail Transfer Protocol”,即簡單郵件傳輸協(xié)議。它是一組用于從源地址到目的地址傳 輸郵件的規(guī)范,通過它來控制郵件的中轉(zhuǎn)方式。SMTP 協(xié)議屬于 TCP/IP 協(xié)議簇,它幫助每臺計(jì)算機(jī)在發(fā)送或中 轉(zhuǎn)信件時找到下一個目的地。SMTP 服務(wù)器就是遵循 SMTP 協(xié)議的發(fā)送郵件服務(wù)器。 SMTP 認(rèn)證,簡單地說就是要求必須在提供了賬戶名和密碼之后才可以登錄 SMTP 服務(wù)器,這就使得那些垃圾 郵件的散播者無可乘之機(jī)。 增加 SMTP 認(rèn)證的目的是為了使用戶避免受到垃圾郵件的侵?jǐn)_。

3.IMAP

IMAP全稱是Internet Mail Access Protocol,即交互式郵件存取協(xié)議,它是跟POP3類似郵件訪問標(biāo)準(zhǔn)協(xié)議之 一。不同的是,開啟了IMAP后,您在電子郵件客戶端收取的郵件仍然保留 在服務(wù)器上,同時在客戶端上的操作 都會反饋到服務(wù)器上,如:刪除郵件,標(biāo)記已讀等,服務(wù)器上的郵件也會做相應(yīng)的動作。所以無論從瀏覽器登 錄郵箱或者客戶端 軟件登錄郵箱,看到的郵件以及狀態(tài)都是一致的。

4.IMAP和POP3有什么區(qū)別

  • POP3協(xié)議允許電子郵件客戶端下載服務(wù)器上的郵件,但是在客戶端的操作(如移動郵件、標(biāo)記 已讀等),不會反饋到服務(wù)器上,比如通過客戶端收取了郵箱中的3封郵件并移動到其他文件夾,郵 箱服務(wù)器上的這些郵件是沒有同時被移動的 。
  • IMAP提供webmail 與電子郵件客戶端之間的雙向通信,客戶端的操作都會反饋到服務(wù)器上,對 郵件進(jìn)行的操作,服務(wù)器上的郵件也會做相應(yīng)的動作。 IMAP和POP3有什么區(qū)別?

二、發(fā)送郵件

發(fā)送郵件時,我們需要構(gòu)造一個 Message 對象,然后調(diào)用 Transport.send(Message) 即可完成發(fā)送:絕 大多數(shù)郵件服務(wù)器要求發(fā)送方地址和登錄用戶名必須一致,否則發(fā)送將失敗。

package com.ljl.email;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
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 javax.activation.DataHandler;
import javax.mail.BodyPart;
import javax.mail.Message.RecipientType;
public class Demo03 {
	public static void main(String[] args) {
		try {
			//創(chuàng)建Session會話
			Session session = JavaMailUtils.createSession();
			//創(chuàng)建郵件對象(Message抽象類的子類對象)
			MimeMessage msg = new MimeMessage(session);
			msg.setFrom(new InternetAddress("olaiolaio@126.com"));
			msg.setRecipient(RecipientType.TO ,new InternetAddress("2272789133@qq.com"));
			msg.setSubject("這是一份測試郵件","utf-8");//標(biāo)題
			//郵件內(nèi)容復(fù)合對象
			Multipart multipart = new MimeMultipart();
			//正文
			BodyPart textPart = new MimeBodyPart();
			//參數(shù)一:正文內(nèi)容
			//參數(shù)二:內(nèi)容類型;字符編碼機(jī)
			textPart.setContent("輸了<b>你</b>贏了世界又如何","text/html;charset=utf-8");
			//附件
			BodyPart imagePart = new MimeBodyPart();
			imagePart.setFileName("lin.jpg");
			imagePart.setDataHandler(new DataHandler(new ByteArrayDataSource(Files.readAllBytes(Paths.get("D:\\k\\image\\ljj.jpg")), "application/octet-stream")));
			//添加至郵件內(nèi)容
			multipart.addBodyPart(textPart);//添加正文
			multipart.addBodyPart(imagePart);//添加附件
			//設(shè)置郵件內(nèi)容
			msg.setContent(multipart);
			//發(fā)送
			Transport.send(msg);
		} catch (MessagingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

三、總結(jié)

  • 使用 JavaMail API 發(fā)送郵件本質(zhì)上是一個 MUA 軟件通過 SMTP 協(xié)議發(fā)送郵件 至 MTA 服務(wù)器;
  • 打開調(diào)試模式可以看到詳細(xì)的 SMTP 交互信息;
  • 某些郵件服務(wù)商需要開啟 SMTP ,并需要獨(dú)立的 SMTP 登錄密碼。

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

相關(guān)文章

  • Java AES加密和解密教程

    Java AES加密和解密教程

    這篇文章主要介紹了Java AES加密和解密的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-12-12
  • 詳解如何在SpringBoot中實(shí)現(xiàn)優(yōu)雅關(guān)閉

    詳解如何在SpringBoot中實(shí)現(xiàn)優(yōu)雅關(guān)閉

    這篇文章主要介紹了如何在SpringBoot中實(shí)現(xiàn)優(yōu)雅關(guān)閉,SpringBoot應(yīng)用程序的關(guān)閉可以是崩潰,也可以是手動關(guān)閉的,Shutdown、Crash 和 Graceful 之間的區(qū)別在于,它控制決定了我們可以用這個事件做什么,本文中,一起研究下Spring Boot提供的開箱即用功能之一:優(yōu)雅關(guān)閉
    2024-09-09
  • 使用nacos實(shí)現(xiàn)自定義文本配置的實(shí)時刷新

    使用nacos實(shí)現(xiàn)自定義文本配置的實(shí)時刷新

    我們都知道,使用Nacos時,如果將Bean使用@RefreshScope標(biāo)注之后,這個Bean中的配置就會做到實(shí)時刷新,本文給大家介紹了如何使用nacos實(shí)現(xiàn)自定義文本配置的實(shí)時刷新,需要的朋友可以參考下
    2024-05-05
  • SSM框架中entity mapper dao service controller層的使用

    SSM框架中entity mapper dao service controll

    這篇文章主要介紹了SSM框架中entity mapper dao service controller層的使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • java判斷ip是否為指定網(wǎng)段示例

    java判斷ip是否為指定網(wǎng)段示例

    這篇文章主要介紹了java判斷ip是否為指定網(wǎng)段示例方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • Spring?Security?登錄時添加圖形驗(yàn)證碼實(shí)現(xiàn)實(shí)例

    Spring?Security?登錄時添加圖形驗(yàn)證碼實(shí)現(xiàn)實(shí)例

    這篇文章主要為大家介紹了Spring?Security?登錄時添加圖形驗(yàn)證碼實(shí)現(xiàn)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • redisson特性及優(yōu)雅實(shí)現(xiàn)示例

    redisson特性及優(yōu)雅實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了redisson特性及優(yōu)雅實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Java代碼重構(gòu)的幾種模式詳解

    Java代碼重構(gòu)的幾種模式詳解

    這篇文章詳細(xì)介紹了Java代碼重構(gòu)的幾種模式,有需要的朋友可以參考一下
    2013-10-10
  • Java并發(fā)編程之線程間的通信

    Java并發(fā)編程之線程間的通信

    當(dāng)線程在系統(tǒng)內(nèi)運(yùn)行時,程序通常無法準(zhǔn)確的控制線程的輪換執(zhí)行,但我們可以通過一些機(jī)制來保障線程的協(xié)調(diào)運(yùn)行,本文著重講解線程間的通信機(jī)制
    2021-06-06
  • Mybatis-plus null值更新不生效問題解決

    Mybatis-plus null值更新不生效問題解決

    在使用Mybatis-plus進(jìn)行數(shù)據(jù)更新時,默認(rèn)策略是NOT_NULL,即null值不會被更新到數(shù)據(jù)庫,解決方法包括設(shè)置全局field-strategy、對特定字段設(shè)置field-strategy或使用UpdateWrapper方式更新,下面就來介紹一下
    2024-10-10

最新評論

大竹县| 尖扎县| 赣州市| 永清县| 呼伦贝尔市| 丰都县| 大关县| 惠州市| 横峰县| 岳阳县| 泉州市| 永和县| 新河县| 深水埗区| 西峡县| 壶关县| 治多县| 贵定县| 宿松县| 苏尼特左旗| 宽甸| 宁明县| 淮南市| 新竹县| 方城县| 布尔津县| 石棉县| 河津市| 南召县| 韩城市| 衡水市| 宝应县| 丽江市| 伊宁县| 铁岭市| 汉源县| 镇雄县| 本溪| 太仆寺旗| 安阳县| 汝城县|