透過(guò)java進(jìn)程發(fā)送電子郵件是一個(gè)簡(jiǎn)單且容易實(shí)現(xiàn)的過(guò)程。這個(gè)過(guò)程是一個(gè)即時(shí)過(guò)程,基於java的電子郵件過(guò)程的兩個(gè)必備項(xiàng)是JavamailAPI和JAF框架。這是用 java 發(fā)送電子郵件的兩個(gè)主要部分。這些部分使基於 Java 的應(yīng)用程式中的電子郵件發(fā)送過(guò)程變得更加簡(jiǎn)單。 Java郵件API和JAF都可以從java標(biāo)準(zhǔn)網(wǎng)站下載。 smtp 伺服器也可用於傳送電子郵件。此 SMTP 伺服器用法是電子郵件產(chǎn)生的替代方法。安裝和使用 SMTP 伺服器(例如播客伺服器和 apache James 伺服器)是另一種方法。
開(kāi)始您的免費(fèi)軟體開(kāi)發(fā)課程
網(wǎng)頁(yè)開(kāi)發(fā)、程式語(yǔ)言、軟體測(cè)試及其他
Java 發(fā)送電子郵件的步驟
發(fā)送郵件的關(guān)鍵步驟如下,
1) 檢索會(huì)話物件。
2) 撰寫要發(fā)送的訊息。
3) 發(fā)送訊息。
讓我們?cè)敿?xì)討論每個(gè)步驟,檢索會(huì)話物件的第一步負(fù)責(zé)拉取基於會(huì)話的物件。創(chuàng)建的每個(gè)會(huì)話都可能有一個(gè)與其關(guān)聯(lián)的物件。這些物件將與會(huì)話相關(guān)的資訊緊密耦合。為了檢索與會(huì)話相對(duì)應(yīng)的對(duì)象,javax.需要使用mail.Session類別。此類有兩種不同的方法用於檢索物件實(shí)例詳細(xì)資訊。因此,有兩個(gè)內(nèi)建方法用於檢索物件實(shí)例詳細(xì)資訊:Session。 getdefaultinstance() 方法和 Session. getinstance() 方法。這是提取關(guān)聯(lián)對(duì)象詳細(xì)資訊的兩個(gè)關(guān)鍵方法。要檢索會(huì)話物件本身,可以使用以下任何方法來(lái)處理這種情況,
s.no | Method details | Description |
1 | public static Session getDefaultInstance(Properties p) | default session value will be returned |
2 | public static Session getDefaultInstance(Properties p,Authenticator a) | default session value will be returned |
3 | public static Session getInstance(Properties prop) | Value associated to the new session will be returned |
4 | public static Session getInstance(Properties prop,Authenticator a) | Value associated to the new session will be returned |
撰寫訊息:這是此過(guò)程中需要考慮的非常關(guān)鍵的步驟。此步驟涉及從源頭制定原始預(yù)期訊息的過(guò)程。因此,由於本節(jié)涉及原始訊息,因此這是需要考慮的非常關(guān)鍵的部分。為了發(fā)生堆肥過(guò)程,使用了 javax.mail.message。此類別允許複雜地建構(gòu)訊息。該類別處?kù)恫僮鞯某橄蠹?jí)別,因此其子類別稱為 javax.mail.internet.MimeMessage 更專門用於此過(guò)程。會(huì)話和關(guān)聯(lián)的訊息將使用以下程式碼段進(jìn)行堆積。因此,此程式碼用於組合訊息和會(huì)話詳細(xì)資料 MimeMessage message=new MimeMessage(session);
發(fā)送訊息:本節(jié)的最後一個(gè)過(guò)程是發(fā)送訊息。 javax.郵件。傳輸類別就是用於此目的。該類別的目的是觸發(fā)發(fā)送訊息的過(guò)程。所以具體來(lái)說(shuō),發(fā)送訊息的過(guò)程可以透過(guò)javax.具體是mail.transport訊息。從編碼的角度來(lái)看,Transport 的程式碼片段。發(fā)送(訊息);正是用於此過(guò)程。
No. | Method | Description |
1 | public static void send(Message m) | The given method is used for sending the message. So transport of the message can be achieved by means of this method. |
2 | public static void send(Message m, Address[] address) | For sending the message to one specific address this method is used. |
Javax 郵件程式步驟
代碼:
import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class Initiateemail { public static void main(String [] args) { // email id of the recipient has to be mentioned in this field String to = "[email?protected]"; // email id of the sender needs to be mentioned here String from = "[email?protected]"; // Assuming you are sending email from localhost String host = "localhost"; // All details associated to the property are mentioned here Properties prop = System.getProperties(); // this is the step were the property setup can be eastablished prop.setProperty("mail.smtp.host", host); Session ses = Session.getDefaultInstance(prop); try { // onject associated to the message is initiated here MimeMessage mess = new MimeMessage(ses); // header details are decided and set here. mes.setFrom(new InternetAddress(from)); // header field details are created here mes.addRecipient(Mes.RecipientType.TO, new InternetAddress(to)); // subject details of the message are given here mes.setSubject("Hello world message . . . . . . . . . . . subject starts "); // Actual message of the email is given here message.setText("Hello world . . . . . . . . . . . . . . . Message Ends"); // transport object is used for initiating the message Transport.send(mes); System.out.println("message has been sent successfully . . . . . "); } catch (MessagingException mex) { mex.printStackTrace(); } } }
輸出:
JavaMail 在電子郵件中傳送附件
代碼:
import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendEmail { public static void main(String [] args) { String to = "[email?protected]"; String from = "[email?protected]"; String host = "localhost"; Properties prop = System.getProperties(); prop.setProperty("mail.smtp.host", host); Session ses = Session.getDefaultInstance(prop); try { MimeMessage mess = new MimeMessage(ses); mes.setFrom(new InternetAddress(from)); mes.addRecipient(Mes.RecipientType.TO, new InternetAddress(to)); mes.setSubject("Hello world message . . . . . . . . . . . subject starts "); message.setText("Hello world . . . . . . . . . . . . . . . Message Ends"); mp.addBodyPart(mbp); mbp = new MimeBodyPart(); String fl = "newfile.txt"; DataSource src= new FileDataSource(fl); mbp.setDataHandler(new DataHandler(src)); mbp.setFileName(filename); mp.addBodyPart(mbp); messetContent(mp ); Transport.send(mes); System.out.println("message has been sent successfully . . . . . "); } catch (MessagingException mex) { mex.printStackTrace(); } } }
輸出:
結(jié)論
本文解釋瞭如何設(shè)定 java 電子郵件訊息以及設(shè)定電子郵件訊息涉及哪些類,還描述了用於發(fā)送電子郵件以及發(fā)送附有文件的電子郵件的程式。
以上是Java電子郵件的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6
視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

Laravel支持使用原生SQL查詢,但應(yīng)優(yōu)先使用參數(shù)綁定以確保安全;1.使用DB::select()執(zhí)行帶參數(shù)綁定的SELECT查詢,防止SQL注入;2.使用DB::update()執(zhí)行UPDATE操作並返回影響行數(shù);3.使用DB::insert()插入數(shù)據(jù);4.使用DB::delete()刪除數(shù)據(jù);5.使用DB::statement()執(zhí)行如CREATE、ALTER等無(wú)結(jié)果集的SQL語(yǔ)句;6.推薦在QueryBuilder中使用whereRaw、selectRaw等方法結(jié)合原生表達(dá)式以提升安

使用JUnit5和Mockito能有效隔離依賴進(jìn)行單元測(cè)試,1.通過(guò)@Mock創(chuàng)建模擬對(duì)象,@InjectMocks注入被測(cè)實(shí)例,@ExtendWith啟用Mockito擴(kuò)展;2.使用when().thenReturn()定義模擬行為,verify()驗(yàn)證方法調(diào)用次數(shù)與參數(shù);3.可模擬異常場(chǎng)景並驗(yàn)證錯(cuò)誤處理;4.推薦構(gòu)造函數(shù)注入、避免過(guò)度模擬、保持測(cè)試原子性;5.使用assertAll()合併斷言,@Nested組織測(cè)試場(chǎng)景,從而提升測(cè)試可維護(hù)性和可靠性。

Go泛型從1.18開(kāi)始支持,用於編寫類型安全的通用代碼。 1.泛型函數(shù)PrintSlice[Tany](s[]T)可打印任意類型切片,如[]int或[]string。 2.通過(guò)類型約束Number限制T為int、float等數(shù)字類型,實(shí)現(xiàn)Sum[TNumber](slice[]T)T安全求和。 3.泛型結(jié)構(gòu)體typeBox[Tany]struct{ValueT}可封裝任意類型值,配合NewBox[Tany](vT)*Box[T]構(gòu)造函數(shù)使用。 4.為Box[T]添加Set(vT)和Get()T方法,無(wú)需

table-layout:fixed會(huì)強(qiáng)製表格列寬由第一行單元格寬度決定,避免內(nèi)容影響佈局。 1.設(shè)置table-layout:fixed並指定表格寬度;2.為第一行th/td設(shè)置具體列寬比例;3.配合white-space:nowrap、overflow:hidden和text-overflow:ellipsis控製文本溢出;4.適用於後臺(tái)管理、數(shù)據(jù)報(bào)表等需穩(wěn)定佈局和高性能渲染的場(chǎng)景,能有效防止佈局抖動(dòng)並提升渲染效率。

json.loads()用於將JSON字符串解析為Python數(shù)據(jù)結(jié)構(gòu),1.輸入必須是雙引號(hào)包裹的字符串且布爾值為true/false;2.支持null→None、對(duì)象→dict、數(shù)組→list等自動(dòng)轉(zhuǎn)換;3.常用於處理API返回的JSON字符串,如response_string經(jīng)json.loads()解析後可直接訪問(wèn)嵌套數(shù)據(jù),使用時(shí)需確保JSON格式正確,否則會(huì)拋出異常。

Choosetheappropriateindextypebasedonusecase,suchassinglefield,compound,multikey,text,geospatial,orTTLindexes.2.ApplytheESRrulewhencreatingcompoundindexesbyorderingfieldsasequality,sort,thenrange.3.Designindexestosupportcoveredqueriesbyincludingallque

Maven是Java項(xiàng)目管理和構(gòu)建的標(biāo)準(zhǔn)工具,答案在於它通過(guò)pom.xml實(shí)現(xiàn)項(xiàng)目結(jié)構(gòu)標(biāo)準(zhǔn)化、依賴管理、構(gòu)建生命週期自動(dòng)化和插件擴(kuò)展;1.使用pom.xml定義groupId、artifactId、version和dependencies;2.掌握核心命令如mvnclean、compile、test、package、install和deploy;3.利用dependencyManagement和exclusions管理依賴版本與衝突;4.通過(guò)多模塊項(xiàng)目結(jié)構(gòu)組織大型應(yīng)用並由父POM統(tǒng)一管理;5.配

Python中函數(shù)傳參是“傳遞對(duì)象引用”,即1.對(duì)於可變對(duì)象(如列表、字典),函數(shù)內(nèi)進(jìn)行原地修改(如append、賦值切片)會(huì)直接影響原對(duì)象;2.對(duì)於不可變對(duì)象(如整數(shù)、字符串),函數(shù)內(nèi)無(wú)法改變?cè)瓕?duì)象,重新賦值只會(huì)創(chuàng)建新對(duì)象;3.參數(shù)傳遞的是引用的副本,若在函數(shù)內(nèi)重新綁定變量(如lst=[...]),則斷開(kāi)與原對(duì)象的連接,不影響外部變量。因此,修改可變對(duì)象會(huì)影響原數(shù)據(jù),而不可變對(duì)象和重新賦值則不會(huì),這解釋了為何列表在函數(shù)內(nèi)修改後外部可見(jiàn),而整數(shù)變化僅限局部。
