“是我——又是我。再一次,我有一個小驚喜要給你。”
“今天我要教你如何使用 Java 發送電子郵件。 ”
“讓我們從好消息開始:Java 有一個處理電子郵件的本地庫。 ”
“壞消息是這個庫是Java EE的一部分,而不是Java SE。”
“ Java EE是JavaSE的擴展版本,其中包含更漂亮的應用程序所需的類。例如,處理電子郵件的應用程序。”
“知道了,那有什麼辦法呢?”
“好吧,我建議你只下載這個庫就可以了。”
“明智地使用 IntelliJ IDEA。”
“創建一個類並將javax.mail.*和javax.mail.internet.*庫添加到導入部分。
“然後按Alt+Enter,讓IDEA為你做一切:
“這是下載缺失庫的提議:”

“這是下載窗口的樣子:”

“或者你可以在這裡下載它”
“已下載。下一步是什麼?”
“您需要轉到項目設置(打開模塊設置)的庫部分,然後從下載的存檔中添加 JAR 文件。”

“完畢。”
“下面的線不再是紅色的了嗎?”
import javax.mail.internet.MimeMessage;
import javax.mail.internet.*;
“是的。”
“很好,那我們繼續吧。”
“發送電子郵件需要三個步驟。”
1) 與將用於發送電子郵件的郵件服務器建立連接
2) 創建電子郵件,如有必要,添加附件
3) 發送電子郵件。
“讓我們從頭開始。”
“要用 Java 發送電子郵件,首先需要與郵件服務器建立連接。”
“如果您在服務器上已經有一個電子郵件帳戶,那最好。擔心垃圾郵件,現代郵件服務器不想發送來自匿名用戶的郵件。 ”
“您可以通過調用 javax.mail.Session.getDefaultInstance 方法連接到服務器:”
Properties props = new Properties();
// Here we need to load data into the props object
Session session = Session.getDefaultInstance(props);
“但是你需要將郵件服務器設置傳遞給這個方法。”
“例如,您可以創建一個 Mail.properties 文件並用所需的設置填充它,例如,如下所示:”
mail.transport.protocol=smtp
mail.host=smtp.gmail.com
mail.smtp.auth=true
mail.user=arnold@gmail.com
mail.password=strong
“最重要的是指定協議和主機,但您可能需要其他設置,具體取決於郵件服務器的工作方式。”
“您可以簡單地將此數據添加到 Java 代碼中的 Properties 對像中。”
“例如:”
Properties props = new Properties();
props.put("mail.transport.protocol", "smtps");
props.put("mail.smtps.host", “smtp.gmail.com”);
props.put("mail.smtps.auth", "true");
props.put("mail.smtp.sendpartial", "true");
Session session = Session.getDefaultInstance(props);
“太好了,我們有一個會話。現在讓我們創建一封電子郵件。”
“這比乍看起來更容易做到。例如:”
// Create a message
MimeMessage message = new MimeMessage(session);
// Set the message subject
message.setSubject("Test email!");
// Add the message text
message.setText("Asta la vista, baby!");
// Specify the recipient
message.addRecipient(Message.RecipientType.TO, new InternetAddress("stalone@gmail.com"));
// Specify the delivery date
message.setSentDate(new Date());
“我可以指定任何電子郵件地址作為收件人嗎?”
“可以。而且,您還可以指定任何電子郵件地址作為發件人。”
“酷!我會考慮的。”
“現在我們只需要發送這個消息。”
“首先,我們登錄到服務器,然後發送消息。只需兩行代碼:”
// Username and password for a Gmail account
String userLogin = “arnold@gmail.com”;
String userPassword = “strong”;
// Sign in on the server:
Transport transport = session.getTransport();
transport.connect("smtp.gmail.com", 465, userLogin, userPassword);
// Send a message:
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
“真有意思!我得試試。”
“如果您想知道如何發送帶附件的消息,可以在此處閱讀相關內容。”
“如果你也想了解如何接收郵件,請看這裡。”
“我的天啊。多麼有用的鏈接!”
“是的,我現在要製作自己的電子郵件客戶端。酷!”
“謝謝,艾莉!”
GO TO FULL VERSION