1. 程式人生 > >[Java] Java 傳送郵件

[Java] Java 傳送郵件

Java 傳送郵件
使用Java應用程式傳送 E-mail 十分簡單,但是首先你應該在你的機器上安裝 JavaMail API 和Java Activation Framework (JAF) 。

  • 您可以從 Java 網站下載最新版本的 JavaMail,開啟網頁右側有個 Downloads 連結,點選它下載。
  • 您可以從 Java 網站下載最新版本的 JAF(版本 1.1.1)。


你也可以使用本站提供的下載連結 論壇不讓上傳jar檔案  所以大家去java的官網下載吧

下載並解壓縮這些檔案,在新建立的頂層目錄中,您會發現這兩個應用程式的一些 jar 檔案。您需要把 mail.jar 和 activation.jar

 檔案新增到您的 CLASSPATH 中。

本次使用第三方郵件伺服器如QQ的SMTP伺服器。
 

[Java] 純文字檢視 複製程式碼

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

import java.security.GeneralSecurityException;

import java.util.Properties;

import javax.mail.Authenticator;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import com.sun.mail.util.MailSSLSocketFactory;

public class SendEmail

{

public static void main(String [] args) throws GeneralSecurityException

{

// 收件人電子郵箱

String to = "[email protected]";

// 發件人電子郵箱

String from = "[email protected]";

// 指定傳送郵件的主機為 smtp.qq.com

String host = "smtp.qq.com"//QQ 郵件伺服器

// 獲取系統屬性

Properties properties = System.getProperties();

// 設定郵件伺服器

properties.setProperty("mail.smtp.host", host);

properties.put("mail.smtp.auth", "true");

MailSSLSocketFactory sf = new MailSSLSocketFactory();

sf.setTrustAllHosts(true);

properties.put("mail.smtp.ssl.enable", "true");

properties.put("mail.smtp.ssl.socketFactory", sf);

// 獲取預設session物件

Session session = Session.getDefaultInstance(properties,new Authenticator(){

public PasswordAuthentication getPasswordAuthentication()

{

return new PasswordAuthentication("[email protected]", "授權的 QQ 郵箱密碼"); //發件人郵件使用者名稱、密碼

}

});

try{

// 建立預設的 MimeMessage 物件

MimeMessage message = new MimeMessage(session);

// Set From: 頭部頭欄位

message.setFrom(new InternetAddress(from));

// Set To: 頭部頭欄位

message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));

// Set Subject: 頭部頭欄位

message.setSubject("This is the Subject Line!");

// 設定訊息體

message.setText("This is actual message");

// 傳送訊息

Transport.send(message);

System.out.println("Sent message successfully....from 52pojie.cn");

}catch (MessagingException mex) {

mex.printStackTrace();

}

}

}



注意:

[Java] 純文字檢視 複製程式碼

?

1

2

3

4

5

// 關於QQ郵箱,還要設定SSL加密,加上以下程式碼即可 上述程式碼以加上 如不是qq郵箱 可省略一下程式碼

MailSSLSocketFactory sf = new MailSSLSocketFactory();

sf.setTrustAllHosts(true);

props.put("mail.smtp.ssl.enable", "true");

props.put("mail.smtp.ssl.socketFactory", sf);