本文實例為大家分享了java實現發送郵件的工具類,供大家參考,具體內容如下
sendemailutil
1
2
3
4
5
|
<dependency> <groupid>javax.mail</groupid> <artifactid>mail</artifactid> <version> 1.4 . 5 </version> </dependency> |
1
2
3
4
5
6
7
8
9
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
import javax.mail.address; import javax.mail.message; import javax.mail.session; import javax.mail.transport; import javax.mail.internet.internetaddress; import javax.mail.internet.mimemessage; import com.sun.mail.util.mailsslsocketfactory; import java.io.fileoutputstream; import java.io.outputstream; import java.text.simpledateformat; import java.util.date; import java.util.properties; public class sendmailutil { //郵件服務器主機名 // qq郵箱的 smtp 服務器地址為: smtp.qq.com private static string myemailsmtphost = "smtp.qq.com" ; //發件人郵箱 private static string myemailaccount = "xxxxxxxxxx@xx.com" ; //發件人郵箱密碼(授權碼) //在開啟smtp服務時會獲取到一個授權碼,把授權碼填在這里 private static string myemailpassword = "xxxxxxxxxxxx" ; /** * 郵件單發(自由編輯短信,并發送,適用于私信) * * @param toemailaddress 收件箱地址 * @param emailtitle 郵件主題 * @param emailcontent 郵件內容 * @throws exception */ public static void sendemail(string toemailaddress, string emailtitle, string emailcontent) throws exception{ properties props = new properties(); // 開啟debug調試 props.setproperty( "mail.debug" , "true" ); // 發送服務器需要身份驗證 props.setproperty( "mail.smtp.auth" , "true" ); // 端口號 props.put( "mail.smtp.port" , 465 ); // 設置郵件服務器主機名 props.setproperty( "mail.smtp.host" , myemailsmtphost); // 發送郵件協議名稱 props.setproperty( "mail.transport.protocol" , "smtp" ); /**ssl認證,注意騰訊郵箱是基于ssl加密的,所以需要開啟才可以使用**/ mailsslsocketfactory sf = new mailsslsocketfactory(); sf.settrustallhosts( true ); //設置是否使用ssl安全連接(一般都使用) props.put( "mail.smtp.ssl.enable" , "true" ); props.put( "mail.smtp.ssl.socketfactory" , sf); //創建會話 session session = session.getinstance(props); //獲取郵件對象 //發送的消息,基于觀察者模式進行設計的 message msg = new mimemessage(session); //設置郵件標題 msg.setsubject(emailtitle); //設置郵件內容 //使用stringbuilder,因為stringbuilder加載速度會比string快,而且線程安全性也不錯 stringbuilder builder = new stringbuilder(); //寫入內容 builder.append( "\n" + emailcontent); //寫入我的官網 builder.append( "\n官網:" + "https://www.hbuecx.club" ); //定義要輸出日期字符串的格式 simpledateformat sdf = new simpledateformat( "yyyy-mm-dd hh:mm:ss" ); //在內容后加入郵件發送的時間 builder.append( "\n時間:" + sdf.format( new date())); //設置顯示的發件時間 msg.setsentdate( new date()); //設置郵件內容 msg.settext(builder.tostring()); //設置發件人郵箱 // internetaddress 的三個參數分別為: 發件人郵箱, 顯示的昵稱(只用于顯示, 沒有特別的要求), 昵稱的字符集編碼 msg.setfrom( new internetaddress(myemailaccount, "你好!" , "utf-8" )); //得到郵差對象 transport transport = session.gettransport(); //連接自己的郵箱賬戶 //密碼不是自己qq郵箱的密碼,而是在開啟smtp服務時所獲取到的授權碼 //connect(host, user, password) transport.connect( myemailsmtphost, myemailaccount, myemailpassword); //發送郵件 transport.sendmessage(msg, new address[] { new internetaddress(toemailaddress) }); //將該郵件保存到本地 outputstream out = new fileoutputstream( "myemail.eml" ); msg.writeto(out); out.flush(); out.close(); transport.close(); } } |
1
2
3
4
|
//toemailaddress 目標郵箱地址 //emailtitle 郵件標題 //emailcontent 郵件內容 sendmailutil.sendemail(toemailaddress, emailtitle, emailcontent); |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/qq_38928944/article/details/82788904