JavaMail是一個Java API,提供了郵件傳輸和處理的類和介面。使用JavaMail API,可以很容易地從Java應用程序中發送電子郵件。本文將介紹如何使用JavaMail API構建高效郵件發送應用程序。
一、使用JavaMail API發送簡單郵件
JavaMail API提供了一個簡單的方法send(),該方法可以用於發送郵件。下面是一個演示如何使用JavaMail API發送簡單郵件的示常式序:
import javax.mail.*; import javax.mail.internet.*; public class MailSender { public static void main(String[] args) { String to = "recipient@example.com"; // 收件人電子郵件地址 String from = "sender@example.com"; // 發件人電子郵件地址 String host = "smtp.example.com"; // SMTP伺服器地址 // 獲取系統屬性 Properties properties = System.getProperties(); // 設置郵件伺服器 properties.setProperty("mail.smtp.host", host); // 獲取默認的Session對象 Session session = Session.getDefaultInstance(properties); try { // 創建一個默認的MimeMessage對象 MimeMessage message = new MimeMessage(session); // 設置From:頭部標題 message.setFrom(new InternetAddress(from)); // 設置To:頭部標題 message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 設置標題 message.setSubject("這是郵件標題"); // 設置信息體 message.setText("這是郵件正文"); // 發送消息 Transport.send(message); System.out.println("郵件已經發送。"); } catch (MessagingException mex) { mex.printStackTrace(); } } }
在上面的示常式序中,我們首先為收件人、發件人、SMTP伺服器地址設置了變數,並使用System.getProperties()方法獲取系統屬性,並設置電子郵件伺服器的相關參數。接下來,我們使用Session.getDefaultInstance()方法創建了一個與伺服器的連接,並使用MimeMessage類創建一個默認的電子郵件對象。然後設置郵件的各個標題和信息體,並使用Transport.send()方法發送郵件。
二、使用JavaMail API發送複雜郵件
JavaMail API還可以用於發送複雜的郵件消息,例如添加附件、HTML格式的消息等。下面是一個演示如何使用JavaMail API發送複雜郵件的示常式序:
import java.util.*; import javax.mail.*; import javax.mail.internet.*; public class MailSenderWithAttachment { public static void main(String[] args) { String to = "recipient@example.com"; // 收件人電子郵件地址 String from = "sender@example.com"; // 發件人電子郵件地址 String host = "smtp.example.com"; // SMTP伺服器地址 // 獲取系統屬性 Properties properties = System.getProperties(); // 設置郵件伺服器 properties.setProperty("mail.smtp.host", host); // 獲取默認的Session對象 Session session = Session.getDefaultInstance(properties); try { // 創建一個默認的MimeMessage對象 MimeMessage message = new MimeMessage(session); // 設置From:頭部標題 message.setFrom(new InternetAddress(from)); // 設置To:頭部標題 message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 設置標題 message.setSubject("這是郵件標題"); // 創建Multipart消息 Multipart multipart = new MimeMultipart(); // 創建一個包含HTML內容的BodyPart BodyPart htmlBodyPart = new MimeBodyPart(); String htmlContent = "這是HTML郵件
這是郵件信息體的文本內容。
"; htmlBodyPart.setContent(htmlContent, "text/html"); // 將HTML內容添加到消息中 multipart.addBodyPart(htmlBodyPart); // 創建一個包含附件的BodyPart BodyPart attachmentBodyPart = new MimeBodyPart(); String filename = "attachment.txt"; attachmentBodyPart.attachFile(filename); // 將附件添加到消息中 multipart.addBodyPart(attachmentBodyPart); // 將整個消息體添加到消息中 message.setContent(multipart); // 發送消息 Transport.send(message); System.out.println("郵件已經發送。"); } catch (MessagingException mex) { mex.printStackTrace(); } catch (java.io.IOException ioex) { ioex.printStackTrace(); } } }
在上面的示常式序中,我們首先為收件人、發件人、SMTP伺服器地址設置了變數,並使用System.getProperties()方法獲取系統屬性,並設置電子郵件伺服器的相關參數。接下來,我們使用Session.getDefaultInstance()方法創建了一個與伺服器的連接,並使用MimeMessage類創建一個默認的電子郵件對象。然後設置郵件的各個標題和信息體,並使用MimeMultipart類創建一個Multipart消息,並向其中添加一個包含HTML內容的BodyPart和一個包含附件的BodyPart。最後將整個消息體添加到電子郵件對象中,並使用Transport.send()方法發送郵件。
三、使用JavaMail API發送郵件並使用SSL加密
有些SMTP伺服器要求使用SSL加密來保護郵件傳輸中的敏感信息。下面是一個演示如何使用JavaMail API發送郵件並使用SSL加密的示常式序:
import java.util.*; import javax.mail.*; import javax.mail.internet.*; public class MailSenderWithSSL { public static void main(String[] args) { String to = "recipient@example.com"; // 收件人電子郵件地址 String from = "sender@example.com"; // 發件人電子郵件地址 String host = "smtp.example.com"; // SMTP伺服器地址 // 獲取系統屬性 Properties properties = System.getProperties(); // 指定SSL加密 properties.setProperty("mail.smtps.ssl.enable", "true"); // 設置郵件伺服器 properties.setProperty("mail.smtps.host", host); // 獲取默認的Session對象 Session session = Session.getDefaultInstance(properties); try { // 創建一個默認的MimeMessage對象 MimeMessage message = new MimeMessage(session); // 設置From:頭部標題 message.setFrom(new InternetAddress(from)); // 設置To:頭部標題 message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 設置標題 message.setSubject("這是郵件標題"); // 設置信息體 message.setText("這是郵件正文"); // 發送消息 Transport.send(message); System.out.println("郵件已經發送。"); } catch (MessagingException mex) { mex.printStackTrace(); } } }
在上面的示常式序中,我們首先為收件人、發件人、SMTP伺服器地址設置了變數,並使用System.getProperties()方法獲取系統屬性,並設置SMTP伺服器的相關參數。接下來,我們指定了使用SSL加密,並使用Session.getDefaultInstance()方法創建了一個與伺服器的安全連接,並使用MimeMessage類創建一個默認的郵件對象。然後設置郵件的各個標題和信息體,並使用Transport.send()方法發送郵件。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/253962.html