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

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

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

一、郵件協(xié)議

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

1.POP3

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

2.SMTP

SMTP 的全稱是“Simple Mail Transfer Protocol”,即簡單郵件傳輸協(xié)議。它是一組用于從源地址到目的地址傳 輸郵件的規(guī)范,通過它來控制郵件的中轉(zhuǎn)方式。SMTP 協(xié)議屬于 TCP/IP 協(xié)議簇,它幫助每臺(tái)計(jì)算機(jī)在發(fā)送或中 轉(zhuǎn)信件時(shí)找到下一個(gè)目的地。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ù)器上,同時(shí)在客戶端上的操作 都會(huì)反饋到服務(wù)器上,如:刪除郵件,標(biāo)記已讀等,服務(wù)器上的郵件也會(huì)做相應(yīng)的動(dòng)作。所以無論從瀏覽器登 錄郵箱或者客戶端 軟件登錄郵箱,看到的郵件以及狀態(tài)都是一致的。

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

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

二、發(fā)送郵件

發(fā)送郵件時(shí),我們需要構(gòu)造一個(gè) Message 對(duì)象,然后調(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會(huì)話
			Session session = JavaMailUtils.createSession();
			//創(chuàng)建郵件對(duì)象(Message抽象類的子類對(duì)象)
			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ù)合對(duì)象
			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ì)上是一個(gè) 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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論