首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

JavaMail 發送簡單郵件完整代碼:Session、MimeMessage、SMTP 認證與發送流程

     編輯:Java 綜合教學

JavaMail 發送簡單郵件完整代碼

使用 JavaMail API 透過 SMTP 發送純文本郵件。

核心程式碼

Properties props = new Properties();
Session session = Session.getInstance(props);
session.setDebug(true); // 開啟除錯輸出

Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("sender@example.com")); // 發件人
message.setRecipient(Message.RecipientType.TO, new InternetAddress("receiver@example.com")); // 收件人
message.setSubject("JavaMail 測試郵件");
message.setText("這是一封測試郵件內容。");

Transport transport = session.getTransport("smtp");
transport.connect("smtp.example.com", "sender@example.com", "password"); // SMTP 主機、帳號、密碼
transport.sendMessage(message, message.getAllRecipients());
transport.close();

System.out.println("發送完成。");

關鍵步驟說明

  1. Session:郵件會話,載入屬性配置 (如 mail.smtp.host、mail.smtp.port、mail.smtp.auth),可用 Session.getDefaultInstance() 或 getInstance()。
  2. MimeMessage:MINE 郵件訊息,設定發件人、收件人 (TO/CC/BCC)、主旨、正文 (文本/HTML/附件)。
  3. Transport:傳輸協定實作,connect() 建立 SMTP 連線並認證,sendMessage() 發送,最後 close() 釋放資源。

常見配置屬性

props.put("mail.smtp.host", "smtp.example.com");
props.put("mail.smtp.port", "587"); // 或 465 (SSL)
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true"); // TLS 加密

注意事項

  • 發件帳號需開啟 SMTP 服務並授權 (如 Gmail 需應用程式密碼)。
  • 生產環境建議使用連線池或非同步發送,避免阻塞業務線程。
  • 附件需使用 MimeMultipart 組合 MimeBodyPart。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved