<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Java 發送電子郵件示例 > 原文: [https://javatutorial.net/java-send-mail-example](https://javatutorial.net/java-send-mail-example) JavaMail API 使平臺和協議無關的框架,旨在幫助構建消息傳遞和郵件應用程序。 它是可選軟件包,可用于 [Java](https://javatutorial.net/install-java-9-eclipse) SE 平臺,也包含在 Java EE 平臺中。 ![java-featured-image](https://img.kancloud.cn/05/3e/053ee0bb59842d92359246c98f815e0c_780x330.jpg) JavaMail 在許多情況下都非常有用。 例如,當用戶單擊“忘記密碼”(通過向用戶設置的相應電子郵件發送電子郵件),注冊網站中的事件(通過電子郵件發送有關該事件的更多詳細信息)時,可以使用該功能。 ## JavaMail API 中使用的主要協議 * SMTP * POP * IMAP 如果您有使用計算機網絡的經驗,則可能聽說過其中的一些(如果不是全部)。 但是,如果您沒有計算機網絡的經驗,那么讓我為您分解這些協議。 ## 應用層 在具體介紹電子郵件協議的解釋之前,讓我首先為您介紹計算機網絡中各層的簡單示意圖。 ![Different protocols in all layers](https://img.kancloud.cn/9e/aa/9eaab3dcaa832649ad41a76cd3eae6c8_1075x539.jpg) 網絡層 您可以看到 SMTP,POP,IMAP 和基本上所有電子郵件協議都在應用程序層下。 傳輸層的協議為應用程序提供主機到主機的通信服務。 網絡層是一組方法,協議和規范,用于在必要時通過網絡將源數據包從源主機傳輸到 IP 地址指定的目標主機。 網絡訪問層中的協議為系統提供了將數據傳遞到直接連接的網絡上的其他設備的方法。 既然您知道每一層的用途是什么,我們就可以開始更深入地了解什么是 SMTP,POP,IMAP。 ### SMTP SMTP 代表簡單郵件傳輸協議。 它是一種標準的互聯網協議,用于跨互聯網協議網絡的電子郵件傳輸。 還有本身不是協議的 SMTPS。 SMTPS 本質上是受 SSL 保護的 SMTP 連接。 ### POP POP 代表郵局協議,是本地電子郵件客戶端用來通過 TCP / IP 連接從遠程服務器檢索電子郵件的應用程序層互聯網標準協議。 POP 支持下載和刪除訪問遠程郵箱的要求。 ### IMAP IMAP 代表互聯網消息訪問協議。 電子郵件客戶端使用的一種互聯網標準協議,它通過 TCP / IP 連接從郵件服務器檢索電子郵件。 它還允許電子郵件客戶端訪問遠程郵件服務器上的電子郵件。 傳入的電子郵件被發送到電子郵件服務器,該服務器將消息存儲在收件人的電子郵件框中。 ## JavaMail 架構 現在該介紹 Java 郵件架構了。 ![How all components co-work](https://img.kancloud.cn/cc/69/cc690eee20cc917d004a0832392857d5_801x811.jpg) 使用 JavaMail API 的 Java 應用程序工作流程 從圖中可以看到,JavaMail API 是客戶端層。 它直接與 SPI(服務器/協議層)相關聯,然后在 SMTP,IMAP 或 POP 之間進行選擇,并在選擇協議后發送消息。 ## 使用 JavaMail API 發送電子郵件的示例 在我們開始之前,請確保您已經安裝了必要的[`.jar`文件](http://www.java2s.com/Code/Jar/j/Downloadjavamail144jar.htm)。 也可以在 [Oracle 網站](https://javaee.github.io/javamail/)上找到它們。 去那里下載最新版本。 另外,您可能需要下載 [fakeSTMP](http://nilhcem.com/FakeSMTP/index.html) 。 fakeSTMP 用于測試目的。 對于此示例,您需要在計算機上安裝 SMTP。 為了能夠通過您的 gmail 帳戶發送郵件,您應該在 Google 帳戶安全設置中允許使用不安全的應用程序(從 gmail 的角度來說就是您的應用程序)。 ![](https://img.kancloud.cn/ba/0e/ba0eb2e54c751f940d44465f95fd0044_1402x853.jpg) ### `EmailSender.java` 要導入所有必需的庫,您需要導入 4 件事。 ```java import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; ``` 之后,我只需要創建一個主要方法即可將變量放入其中。 將接收電子郵件,發件人電子郵件和主機的電子郵件。 ```java public class EmailSender { public static void main(String[] args) { String destinationEmail = "yanicha93@gmail.com"; String senderEmail = "yanicha93@gmail.com"; String host = "localhost"; } } ``` 接下來的幾行將負責獲取會話對象。 ```java Properties properties = System.getProperties(): properties.setProperty("mail.smtp.host", host); Session session = Session.getDefaultInstance(properties); ``` **創建會話對象的目的是什么?** 該會話是您如何與郵件主機進行交互的上下文。 這可能包括調試郵件主機的輸出,超時和身份驗證機制。 最后,我們正在發送實際的消息。 ```java try { MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(senderEmail)); message.addRecipient(Message.RecipientType.TO, new InternetAddress(destinationEmail)); message.setSubject("Hello"); message.setText("Hey, ignore this email, this is just an example"); Transport.send(message); System.out.println("Sent Successfully"); } catch (MessagingException mex) { mex.printStackTrace(); } ``` 在這里,我們正在創建一條消息,緊接著設置發送電子郵件的人(在本例中為`senderEmail`。此后,我們只需使用`message.addRecipient()`方法添加目標電子郵件即可。然后,設置郵件的主題 電子郵件(您可以將其設置為任意內容),然后我們設置文本(同樣,您可以將其設置為任意內容)。然后,我們只需發送郵件即可。 好的! 我們發送了消息。 ### 完整的代碼段: ```java import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class EmailSender { public static void main(String[] args) { String destinationEmail = "yanicha93@gmail.com"; String senderEmail = "yanicha93@gmail.com"; String host = "localhost"; Properties properties = System.getProperties(); properties.setProperty("mail.smtp.host", host); Session session = Session.getDefaultInstance(properties); try { MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(senderEmail)); message.addRecipient(Message.RecipientType.TO, new InternetAddress(destinationEmail)); message.setSubject("Hello"); message.setText("Hey, ignore this email, this is just an example"); Transport.send(message); System.out.println("Sent Successfully"); } catch (MessagingException mex) { mex.printStackTrace(); } } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看