更新時間:2022-11-18 14:29:17 來源:動力節點 瀏覽2139次
有多種方法可以使用 JavaMail API 發送電子郵件。為此,您必須擁有負責發送郵件的 SMTP 服務器。
您可以使用以下技術之一獲取 SMTP 服務器:
安裝和使用任何 SMTP 服務器,例如 Postcast 服務器、Apache James 服務器、cmail 服務器等(或)
使用主機提供商提供的 SMTP 服務器,例如我的 SMTP 服務器是 mail.javatpoint.com(或)
使用其他公司提供的 SMTP 服務器,例如 gmail 等。
在這里,我們將學習以上三種使用 javamail API 發送電子郵件的方法。但是我們應該學習從 Java 應用程序發送電子郵件的基本步驟。
使用 JavaMail 發送電子郵件有以下三個步驟。它們如下:
獲取存儲主機所有信息的會話對象,如主機名、用戶名、密碼等。
撰寫郵件
發送信息
1.獲取會話對象
javax.mail.Session類提供了兩種獲取session對象的方法,Session.getDefaultInstance()方法和Session.getInstance()方法。您可以使用任何方法來獲取會話對象。
Session類的方法
方法 | 描述 | |
---|---|---|
1個 | public static Session getDefaultInstance(屬性道具) | 返回默認會話。 |
2個 | public static Session getDefaultInstance(Properties props,Authenticator auth) | 返回默認會話。 |
3個 | public static Session getInstance(屬性道具) | 返回新會話。 |
4個 | public static Session getInstance(Properties props,Authenticator auth) | 返回新會話。 |
getDefaultInstance() 方法示例
屬性 properties= new Properties();
//填寫主機名等所有信息
會話 session=Session.getDefaultInstance(properties, null );
getInstance() 方法示例
屬性 properties= new Properties();
//填寫主機名等所有信息
會話 session=Session.getInstance(properties, null );
2.撰寫消息
javax.mail.Message 類提供了編寫消息的方法。但它是一個抽象類,所以它的子類 javax.mail.internet.MimeMessage 類最常被使用。
要創建消息,您需要在 MimeMessage 類構造函數中傳遞會話對象。例如:
MimeMessage 消息 = new MimeMessage(session);
現在消息對象已經創建,但是要在這個對象中存儲信息,MimeMessage 類提供了很多方法。讓我們看看 MimeMessage 類提供的方法:
方法 | 描述 | |
---|---|---|
1個 | public void setFrom(地址地址) | 用于設置 from 標頭字段。 |
2個 | public void addRecipient(Message.RecipientType類型, Address地址) | 用于將給定地址添加到收件人類型。 |
3個 | public void addRecipients(Message.RecipientType 類型,Address[] 地址) | 用于將給定地址添加到收件人類型。 |
4個 | public void setSubject(字符串主題) | 用于設置主題標題字段。 |
5個 | public void setText(字符串文本消息) | 用于使用 text/plain MIME 類型將文本設置為消息內容。 |
6個 | public void setContent(Object msg, String contentType) | 用于使用給定的 MIME 類型將內容設置為消息內容。 |
撰寫消息的示例:
MimeMessage 消息 = new MimeMessage(session);
message.setFrom( new InternetAddress( "[email protected]" ));
message.addRecipient(Message.RecipientType.To,
新的 互聯網地址(“[email protected]” ));
message.setHeader( "大家好" );
message.setText( "您好,這封郵件是為了通知您..." );
3.發送消息
javax.mail.Transport 類提供發送消息的方法。
Transport類的常用方法
方法 | 描述 | |
---|---|---|
1個 | 公共靜態無效發送(消息消息) | 用于發送消息。 |
2個 | public static void send(Message message, Address[] address) | 用于將消息發送到給定的地址。 |
發送消息的示例:
傳輸。發送(消息);
在這個例子中,我們將學習如何通過機器上安裝的 SMTP 服務器發送電子郵件,例如 Postcast 服務器、Apache James 服務器、Cmail 服務器等。如果您想使用主機提供商提供的 SMTP 服務器發送電子郵件,請參閱這個之后的例子。
要使用 JavaMail API 發送電子郵件,您需要加載兩個 jar 文件:
郵件.jar
激活.jar
下載這些 jar 文件或到 Oracle 站點下載最新版本。
導入 java.util.*;
導入 javax.mail.*;
導入 javax.mail.internet.*;
導入 javax.activation.*;
公開課 發送郵件
{
public static void main(String [] args){
字符串 = "[email protected]" ; //相應地改變
String from = "[email protected]" ;相應地改變
字符串主機= “本地主機” ;//或IP地址
//獲取會話對象
屬性 properties = System.getProperties();
properties.setProperty( "mail.smtp.host" , host);
Session session = Session.getDefaultInstance(屬性);
//編寫消息
嘗試{
MimeMessage 消息 = new MimeMessage(session);
message.setFrom( new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject( "平" );
message.setText( "您好,這是發送郵件的例子" );
// 發信息
傳輸。發送(消息);
System.out.println( "消息發送成功...." );
} catch (MessagingException mex) {mex.printStackTrace();}
}
}
在這個例子中,我們將學習如何通過機器上安裝的 SMTP 服務器發送電子郵件,例如 Postcast 服務器、Apache James 服務器、Cmail 服務器等。如果您想使用主機提供商提供的 SMTP 服務器發送電子郵件,請參閱這個之后的例子。
要運行此示例,您需要加載兩個 jar 文件。有 4 種方法可以加載 jar 文件。其中一種方法是設置類路徑。讓我們看看如何運行這個例子:
加載 jar 文件 | c:\> set classpath=mail.jar;activation.jar;.; |
編譯源文件 | c:\> javac SendEmail.java |
由......運營 | c:\> java 發送電子郵件 |
如果您使用主機提供商提供的 SMTP 服務器,例如 mail.javatpoint.com,您需要驗證用戶名和密碼。javax.mail.PasswordAuthentication 類用于驗證密碼。
如果您使用 JavaMail API 發送電子郵件,請加載兩個 jar 文件:
郵件.jar
激活.jar
下載這些 jar 文件或到 Oracle 站點下載最新版本。
導入 java.util.Properties;
導入 javax.mail.*;
導入 javax.mail.internet.*;
公共類 SendMailBySite {
public static void main(String[] args) {
String host= "mail.javatpoint.com" ;
final String user= "[email protected]" ; //相應地改變
最終 字符串密碼= “xxxxx” ;//相應地改變
字符串= “[email protected]” ;//相應地改變
//獲取會話對象
屬性 props = new Properties();
props.put( "mail.smtp.host" ,host);
props.put( "mail.smtp.auth" , "true" );
Session session = Session.getDefaultInstance(props,
新的 javax.mail.Authenticator() {
受保護 的 PasswordAuthentication getPasswordAuthentication() {
返回新的 PasswordAuthentication(用戶,密碼);
}
});
//編寫消息
嘗試 {
MimeMessage 消息 = new MimeMessage(session);
message.setFrom(新的 互聯網地址(用戶));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject( "javatpoint" );
message.setText( "這是一個使用 JavaMail API 發送電子郵件的簡單程序" );
//發送消息
傳輸。發送(消息);
System.out.println( "消息發送成功..." );
} catch (MessagingException e) {e.printStackTrace();}
}
}
正如您在上面的示例中看到的,需要對用戶標識和密碼進行身份驗證。如該程序所示,您可以輕松發送電子郵件。相應地更改用戶名和密碼。讓我們看看如何通過簡單的技術再次運行它:
加載 jar 文件 | c:\> set classpath=mail.jar;activation.jar;.; |
編譯源文件 | c:\> javac SendMailBySite.java |
由......運營 | c:\> java SendMailBySite |
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習