国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java Email 實現(xiàn)郵件發(fā)送

這篇具有很好參考價值的文章主要介紹了Java Email 實現(xiàn)郵件發(fā)送。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Email:電子郵件。

在當(dāng)今社會有著重要的應(yīng)用,傳統(tǒng)的郵件是通過郵局投遞,然后從一個郵局到另一個郵局,最終到達(dá)用戶的郵箱。

在電子郵件中也有著相似的發(fā)送過程:電子郵件是從用戶電腦的郵件軟件發(fā)送到郵件服務(wù)器上,經(jīng)過若干個郵件服務(wù)器的中轉(zhuǎn),最終到達(dá)對方郵件服務(wù)器上,收件方就可以用軟件接收郵件。

這樣的郵件軟件稱為MUA: Mail user Agent。即給用戶服務(wù)的郵件代理;
郵件服務(wù)器則稱為MTA : Mail Transfer Agent。即郵件中轉(zhuǎn)的代理;
最終到達(dá)的郵件服務(wù)器稱為MDA: Mail Delivery Agent。

發(fā)送方的郵件進(jìn)入MDA就被存放在MDA服務(wù)器的硬盤中,等待收信方使用郵件軟件查看。

準(zhǔn)備SMTP登錄信息

1.SMTP

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

2.POP3

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

3.IMAP

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

以網(wǎng)易163郵箱為例,在設(shè)置中開啟服務(wù)"POP3/SMTP/IMAP"二者任選其一;

java 發(fā)送郵件,java,開發(fā)語言

因為要使用Java發(fā)送Email,則要選擇給予授權(quán)密碼,當(dāng)你不再使用時,可以點擊刪除按鈕,之后此密碼將會失效,不能再進(jìn)行登錄

java 發(fā)送郵件,java,開發(fā)語言

做好準(zhǔn)備后,將JavaMail相關(guān)的依賴Jar包加入至項目

javax.mail-1.6.2.jar

?實現(xiàn)發(fā)送郵件

public class Demo01 {
 public static void main(String[] args) throws MessagingException {
	String userName="177*******@163.com";//登錄名
	String password="Y*******FHNYQOVX";//登陸密碼
	
	//smtp服務(wù)器
	Properties pros=new Properties();
	pros.put("mail.smtp.host", "smtp.163.com");//主機(jī)名
	pros.put("mail.smtp.port", "25");//主機(jī)端口號
	pros.put("mail.smtp.auth", "true");//是否需要用戶認(rèn)證
	pros.put("mail.smtp.starttls.enable", "true");//啟用TLS加密
	//創(chuàng)建會話
	Session session=Session.getInstance(pros,new Authenticator(){
		@Override
		protected javax.mail.PasswordAuthentication getPasswordAuthentication(){
			return new javax.mail.PasswordAuthentication(userName, password);
		}
	});
	System.out.println(session);
	//設(shè)置debug模式便于調(diào)試
    session.setDebug(true);

	MimeMessage message=new MimeMessage(session);
    //郵件標(biāo)題
	message.setSubject("HELLO!");
    //郵件內(nèi)容(文本)
	message.setText("你好","utf-8");
    //設(shè)置發(fā)送方地址
	message.setFrom(new InternetAddress("177********@163.com"));
    //設(shè)置收件方地址
	message.setRecipient(RecipientType.TO,new InternetAddress("11111111@qq.com"));
	//發(fā)送
	Transport.send(message);
}
}

?

運行代碼,發(fā)送郵件成功后,可以看出SMTP協(xié)議是一個請求-響應(yīng)協(xié)議,客戶端總是發(fā)送命令,然后等待服務(wù)器響應(yīng)。服務(wù)器響應(yīng)總是以數(shù)字開頭,后面的信息才是用于調(diào)試的文本。這些響應(yīng)碼已經(jīng)被定義在SMTP協(xié)議中了,查看具體的響應(yīng)碼就可以知道出錯原因。

發(fā)送帶有附件的郵件

想發(fā)送帶有附件的郵件,我們還要創(chuàng)建郵件內(nèi)容"復(fù)合"對象,Multipart類的MimeMultipart實現(xiàn)類,然后再創(chuàng)建BodyPart類的MimeBodyPart實現(xiàn)類,textPart用于存儲正文內(nèi)容,調(diào)用setContent()方法,參數(shù)1為正文內(nèi)容,參數(shù)2為內(nèi)容類型;字符編碼集。

Multipart multipart = new MimeMultipart();

// 添加text:
BodyPart textpart = new MimeBodyPart();
textpart.setContent(body,"text/html;charset=utf-8");
multipart.addBodyPart(textpart);

//添加image:
BodyPart Filepart = new MimeBodyPart();
Filepart.setFileName("xxx.jpg");
Filepart.setDataHandler(new DataHandler(new ByteArrayDataSource(文件輸入流,"application/octet-stream")));
multipart.addBodyPart(imagepart);

//設(shè)置郵件內(nèi)容為multipart:
message.setContent(multipart);

FilePart用于存儲附件,先調(diào)用setFileName()方法設(shè)置附件文件的顯示名稱(顯示名稱可以與圖片原名不一致),再調(diào)用setDataHandler(),其中添加一個DataHandler()方法,使用Files工具類的readAllBytes()方法,可以把文件讀取成字節(jié)數(shù)據(jù),二進(jìn)制文件可以用application/octet-stream,Word文檔則是application/msword。 最后,通過setContent()把Multipart添加到Message中,即可發(fā)送郵件。

如果我們需要抄送多個人一起發(fā)送時,可以選擇通過創(chuàng)建一個InternetAddress[]數(shù)組把多個抄送人存入。

message.setRecipients(RecipientType.CC, new InternetAddress[] {
					new InternetAddress("*********"),
					new InternetAddress("*********"),
					new InternetAddress("*********"),
			});

發(fā)送內(nèi)嵌圖片的HTML郵件?

郵件中加入<img src="xxxxx.jpg">,這樣的外部圖片鏈接通常會被郵件客戶端過濾,并提示用戶顯示圖片并不安全。只有內(nèi)嵌的圖片才能正常在郵件中顯示。

Multipart multipart = new MimeMultipart();
					
// 添加text:
BodyPart textpart = new MimeBodyPart();
textpart.setContent("<h1>Hello</h1><p><img src=\"cid:img01\"></p>", "text/html;charset=utf-8");
multipart.addBodyPart(textpart);

// 添加image:
BodyPart imagepart = new MimeBodyPart();
imagepart.setFileName("xxx.jpg");
imagepart.setDataHandler(new DataHandler(new ByteArrayDataSource(new FileInputStream("c:\\test\\xxx.jpg"), "application/octet-stream")));
multipart.addBodyPart(imagepart);

//設(shè)置當(dāng)前image為內(nèi)嵌圖片
//這個ID和HTML中引用的ID對應(yīng)起來,郵件客戶端就可以正常顯示內(nèi)嵌圖片
imagepart.setHeader("Content-ID","<img01>");

小結(jié)?

JavaMail API發(fā)送郵件本質(zhì)上是一個MUA軟件通過SMTP協(xié)議發(fā)送郵件至MTA服務(wù)器是一種依賴特定協(xié)議的服務(wù)模式。

MTA和MDA這樣的服務(wù)器軟件通常是現(xiàn)成的。MUA到MTA發(fā)送郵件的協(xié)議就是SMTP協(xié)議。使用Java程序發(fā)送郵件時,只需要使用JavaMail這個標(biāo)準(zhǔn)API就可以直接發(fā)送郵件。文章來源地址http://www.zghlxwxcb.cn/news/detail-771201.html

到了這里,關(guān)于Java Email 實現(xiàn)郵件發(fā)送的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • java實現(xiàn)發(fā)送郵件

    java實現(xiàn)發(fā)送郵件

    本文介紹下java實現(xiàn)郵件的發(fā)送,意在網(wǎng)站用戶評論時能夠及時通知站長和用戶評論被回復(fù)后能夠及時通知用戶。 下文介紹下具體實現(xiàn)。 java實現(xiàn) 首先引入springboot的郵箱依賴 配置郵箱參數(shù),這里以 qq郵箱 作為示例 此時就差不多了,接下來實現(xiàn)郵箱工具類 此時調(diào)用 MailUtil 里

    2024年02月16日
    瀏覽(19)
  • 網(wǎng)工應(yīng)用層:電子郵件Email、SMTP協(xié)議與使用Telnet發(fā)送電子郵件

    網(wǎng)工應(yīng)用層:電子郵件Email、SMTP協(xié)議與使用Telnet發(fā)送電子郵件

    參考資料: https://www.bilibili.com/video/BV1c4411d7jb?p=72vd_source=e66dd25b0246f28e772d75f11c80f03c 湖科大的高軍老師做的計算機(jī)網(wǎng)絡(luò)課,去年選修的計網(wǎng)全靠高老師,生動,舉例豐富,配套實驗課,無廢話純干貨,單推一波! 電子郵件(E-mail)是一種用電子手段提供信息交換的通信方式,是

    2024年02月14日
    瀏覽(36)
  • springboot(java)使用javamail實現(xiàn)郵件的接收、轉(zhuǎn)發(fā)、發(fā)送、清除

    最近在弄郵件相關(guān)的功能,被搞的頭大,很多找的方法根本不知道該怎么往下走,就目前為止, 經(jīng)過各種的碰壁和失敗,就整理出來如何使用javamail實現(xiàn)郵件的接收、轉(zhuǎn)發(fā)、發(fā)送、清除 不單單是分享,也為我后續(xù)查找更方便做一個記錄 在正式發(fā)送郵件之前,我們應(yīng)該對郵件

    2024年02月04日
    瀏覽(24)
  • ews java + Oauth2實現(xiàn)office 365發(fā)送郵件

    引入maven包: com.microsoft.ews-java-api ews-java-api 2.0 使用office 365郵箱服務(wù)收發(fā)郵件有兩種校驗方式,一種是老的basic authentication, 這種方式目前已不建議使用,如下使用的是userName, password進(jìn)行驗證的方式。 public static boolean sendExchange(MailConfig mailInfo) { // The Exchange Server Version. 最新推

    2024年02月09日
    瀏覽(28)
  • 100天精通Python丨辦公效率篇 —— 11、Python自動化操作 Email(發(fā)送郵件、收郵件、郵箱客戶端)

    大家好,我是你們的好朋友西紅柿!今天咱們聊一聊關(guān)于Python怎么操作郵件的問題。這可是十分有用的技能啊,偏偏很多小伙伴們并不知道,還得費盡周折地查找資料呢。幸好我這個聰明伶俐的小家伙會給你們支招,讓你們又快又好地掌握這門技能! 首先,你要掌握以SMTP協(xié)

    2023年04月17日
    瀏覽(20)
  • 【論壇java項目】第二章 Spring Boot實踐,開發(fā)社區(qū)登錄模塊:發(fā)送郵件、開發(fā)注冊功能、會話管理、生成驗證碼、開發(fā)登錄、退出功能、

    【論壇java項目】第二章 Spring Boot實踐,開發(fā)社區(qū)登錄模塊:發(fā)送郵件、開發(fā)注冊功能、會話管理、生成驗證碼、開發(fā)登錄、退出功能、

    ??如果對你有幫助的話?? ??為博主點個贊吧 ?? ??點贊是對博主最大的鼓勵?? ??愛心發(fā)射~?? bofryuzursekbiab——密碼 訪問郵箱域名 郵箱端口 賬號 密碼 協(xié)議 詳細(xì)配置 JavaMailSender 是 Spring Email 的核心組件,負(fù)責(zé)發(fā)送郵件 MimeMessage 用于封裝郵件的相關(guān)信息 MimeMessageHelper 用

    2024年02月06日
    瀏覽(33)
  • JAVA之發(fā)送郵件

    一、導(dǎo)入依賴 二、發(fā)送普通文本 三、發(fā)送附件 一、導(dǎo)入依賴 二、發(fā)送普通文本 三、發(fā)送附件 方法一:通過POI讀取數(shù)據(jù)庫的數(shù)據(jù),并生成excel,但不保存在本地文件,通過流的方式,作為附件并發(fā)送郵件 主要的代碼如下: 全部代碼如下: 方法二:將導(dǎo)出的數(shù)據(jù)生成文件,

    2024年02月13日
    瀏覽(21)
  • java ssl加密發(fā)送郵件

    通過25端口發(fā)送郵件不安全,改為ssl加密方式發(fā)送郵件,比較常見的2中實現(xiàn)類發(fā)送郵件如下所示。 使用該實現(xiàn)類發(fā)送郵件,ssl加密使用端口號為465,借助Properties類設(shè)置ssl的各種配置。 網(wǎng)上資料較少,自己記錄一下。 修改application.yml文件配置 至于能否都采用第二種方式來實

    2024年02月12日
    瀏覽(17)
  • Java發(fā)送郵件一行代碼解決

    Java發(fā)送郵件一行代碼解決

    今天博主帶來一期超詳細(xì)的郵件發(fā)送實操內(nèi)容,希望能get到您的點贊!話不多說,直接進(jìn)入正題。 在實踐開始前,這里需要提到 Hutool ,Hutool是一個小而全的Java工具類庫,通過靜態(tài)方法封裝,降低相關(guān)API的學(xué)習(xí)成本,提高工作效率的工具類。 那么現(xiàn)在正式進(jìn)入實戰(zhàn)!首先創(chuàng)

    2024年02月02日
    瀏覽(26)
  • Java發(fā)送郵件 啟用SSL

    Java發(fā)送郵件 啟用SSL

    使用的maven依賴: 配置文件 mail.properties 如下: 在Foxmail的配置如下: 代碼如下:

    2024年04月26日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包