日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java mail

發(fā)布時間:2025/4/14 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java mail 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

第一個類:MailSenderInfo.java?

package?com.util.mail;???
/**???
*?發(fā)送郵件需要使用的基本信息?
*author?by?wangfun
http://www.5a520.cn?小說520??
*/
????
import?java.util.Properties;????
public?class?MailSenderInfo?{????
????//?發(fā)送郵件的服務器的IP和端口????
????private?String?mailServerHost;????
????private?String?mailServerPort?=?"25";????
????//?郵件發(fā)送者的地址????
????private?String?fromAddress;????
????//?郵件接收者的地址????
????private?String?toAddress;????
????//?登陸郵件發(fā)送服務器的用戶名和密碼????
????private?String?userName;????
????private?String?password;????
????//?是否需要身份驗證????
????private?boolean?validate?=?false;????
????//?郵件主題????
????private?String?subject;????
????//?郵件的文本內(nèi)容????
????private?String?content;????
????//?郵件附件的文件名????
????private?String[]?attachFileNames;??????
????/**???
??????*?獲得郵件會話屬性???
??????*/
????
????public?Properties?getProperties(){????
??????Properties?p?=?new?Properties();????
??????p.put("mail.smtp.host",?this.mailServerHost);????
??????p.put("mail.smtp.port",?this.mailServerPort);????
??????p.put("mail.smtp.auth",?validate???"true"?:?"false");????
??????return?p;????
????}
????
????public?String?getMailServerHost()?{????
??????return?mailServerHost;????
????}
????
????public?void?setMailServerHost(String?mailServerHost)?{????
??????this.mailServerHost?=?mailServerHost;????
????}
???
????public?String?getMailServerPort()?{????
??????return?mailServerPort;????
????}
???
????public?void?setMailServerPort(String?mailServerPort)?{????
??????this.mailServerPort?=?mailServerPort;????
????}
???
????public?boolean?isValidate()?{????
??????return?validate;????
????}
???
????public?void?setValidate(boolean?validate)?{????
??????this.validate?=?validate;????
????}
???
????public?String[]?getAttachFileNames()?{????
??????return?attachFileNames;????
????}
???
????public?void?setAttachFileNames(String[]?fileNames)?{????
??????this.attachFileNames?=?fileNames;????
????}
???
????public?String?getFromAddress()?{????
??????return?fromAddress;????
????}
????
????public?void?setFromAddress(String?fromAddress)?{????
??????this.fromAddress?=?fromAddress;????
????}
???
????public?String?getPassword()?{????
??????return?password;????
????}
???
????public?void?setPassword(String?password)?{????
??????this.password?=?password;????
????}
???
????public?String?getToAddress()?{????
??????return?toAddress;????
????}
????
????public?void?setToAddress(String?toAddress)?{????
??????this.toAddress?=?toAddress;????
????}
????
????public?String?getUserName()?{????
??????return?userName;????
????}
???
????public?void?setUserName(String?userName)?{????
??????this.userName?=?userName;????
????}
???
????public?String?getSubject()?{????
??????return?subject;????
????}
???
????public?void?setSubject(String?subject)?{????
??????this.subject?=?subject;????
????}
???
????public?String?getContent()?{????
??????return?content;????
????}
???
????public?void?setContent(String?textContent)?{????
??????this.content?=?textContent;????
????}
????
}
???


第二個類:SimpleMailSender.java

package?com.util.mail;???
??
import?java.util.Date;????
import?java.util.Properties;???
import?javax.mail.Address;????
import?javax.mail.BodyPart;????
import?javax.mail.Message;????
import?javax.mail.MessagingException;????
import?javax.mail.Multipart;????
import?javax.mail.Session;????
import?javax.mail.Transport;????
import?javax.mail.internet.InternetAddress;????
import?javax.mail.internet.MimeBodyPart;????
import?javax.mail.internet.MimeMessage;????
import?javax.mail.internet.MimeMultipart;????
??
/**???
*?簡單郵件(不帶附件的郵件)發(fā)送器???
http://www.bt285.cn?BT下載
*/
????
public?class?SimpleMailSender??{????
/**???
??*?以文本格式發(fā)送郵件???
??*?@param?mailInfo?待發(fā)送的郵件的信息???
??*/
????
????public?boolean?sendTextMail(MailSenderInfo?mailInfo)?{????
??????//?判斷是否需要身份認證????
??????MyAuthenticator?authenticator?=?null;????
??????Properties?pro?=?mailInfo.getProperties();???
??????if?(mailInfo.isValidate())?{????
??????//?如果需要身份認證,則創(chuàng)建一個密碼驗證器????
????????authenticator?=?new?MyAuthenticator(mailInfo.getUserName(),?mailInfo.getPassword());????
??????}
???
??????//?根據(jù)郵件會話屬性和密碼驗證器構造一個發(fā)送郵件的session????
??????Session?sendMailSession?=?Session.getDefaultInstance(pro,authenticator);????
??????try?{????
??????//?根據(jù)session創(chuàng)建一個郵件消息????
??????Message?mailMessage?=?new?MimeMessage(sendMailSession);????
??????//?創(chuàng)建郵件發(fā)送者地址????
??????Address?from?=?new?InternetAddress(mailInfo.getFromAddress());????
??????//?設置郵件消息的發(fā)送者????
??????mailMessage.setFrom(from);????
??????//?創(chuàng)建郵件的接收者地址,并設置到郵件消息中????
??????Address?to?=?new?InternetAddress(mailInfo.getToAddress());????
??????mailMessage.setRecipient(Message.RecipientType.TO,to);????
??????//?設置郵件消息的主題????
??????mailMessage.setSubject(mailInfo.getSubject());????
??????//?設置郵件消息發(fā)送的時間????
??????mailMessage.setSentDate(new?Date());????
??????//?設置郵件消息的主要內(nèi)容????
??????String?mailContent?=?mailInfo.getContent();????
??????mailMessage.setText(mailContent);????
??????//?發(fā)送郵件????
??????Transport.send(mailMessage);???
??????return?true;????
??????}
?catch?(MessagingException?ex)?{????
??????????ex.printStackTrace();????
??????}
????
??????return?false;????
????}
????
???????
????/**???
??????*?以HTML格式發(fā)送郵件???
??????*?@param?mailInfo?待發(fā)送的郵件信息???
??????*/
????
????public?static?boolean?sendHtmlMail(MailSenderInfo?mailInfo){????
??????//?判斷是否需要身份認證????
??????MyAuthenticator?authenticator?=?null;???
??????Properties?pro?=?mailInfo.getProperties();???
??????//如果需要身份認證,則創(chuàng)建一個密碼驗證器?????
??????if?(mailInfo.isValidate())?{????
????????authenticator?=?new?MyAuthenticator(mailInfo.getUserName(),?mailInfo.getPassword());???
??????}
????
??????//?根據(jù)郵件會話屬性和密碼驗證器構造一個發(fā)送郵件的session????
??????Session?sendMailSession?=?Session.getDefaultInstance(pro,authenticator);????
??????try?{????
??????//?根據(jù)session創(chuàng)建一個郵件消息????
??????Message?mailMessage?=?new?MimeMessage(sendMailSession);????
??????//?創(chuàng)建郵件發(fā)送者地址????
??????Address?from?=?new?InternetAddress(mailInfo.getFromAddress());????
??????//?設置郵件消息的發(fā)送者????
??????mailMessage.setFrom(from);????
??????//?創(chuàng)建郵件的接收者地址,并設置到郵件消息中????
??????Address?to?=?new?InternetAddress(mailInfo.getToAddress());????
??????//?Message.RecipientType.TO屬性表示接收者的類型為TO????
??????mailMessage.setRecipient(Message.RecipientType.TO,to);????
??????//?設置郵件消息的主題????
??????mailMessage.setSubject(mailInfo.getSubject());????
??????//?設置郵件消息發(fā)送的時間????
??????mailMessage.setSentDate(new?Date());????
??????//?MiniMultipart類是一個容器類,包含MimeBodyPart類型的對象????
??????Multipart?mainPart?=?new?MimeMultipart();????
??????//?創(chuàng)建一個包含HTML內(nèi)容的MimeBodyPart????
??????BodyPart?html?=?new?MimeBodyPart();????
??????//?設置HTML內(nèi)容????
??????html.setContent(mailInfo.getContent(),?"text/html;?charset=utf-8");????
??????mainPart.addBodyPart(html);????
??????//?將MiniMultipart對象設置為郵件內(nèi)容????
??????mailMessage.setContent(mainPart);????
??????//?發(fā)送郵件????
??????Transport.send(mailMessage);????
??????return?true;????
??????}
?catch?(MessagingException?ex)?{????
??????????ex.printStackTrace();????
??????}
????
??????return?false;????
????}
????
}
???

第三個類:MyAuthenticator.java?

?

package?com.util.mail;???
??
import?javax.mail.*;???
?????
public?class?MyAuthenticator?extends?Authenticator{???
????String?userName=null;???
????String?password=null;???
????????
????public?MyAuthenticator(){???
????}
???
????public?MyAuthenticator(String?username,?String?password)?{????
????????this.userName?=?username;????
????????this.password?=?password;????
????}
????
????protected?PasswordAuthentication?getPasswordAuthentication(){???
????????return?new?PasswordAuthentication(userName,?password);???
????}
???
}
???


下面給出使用上面三個類的代碼:

public?static?void?main(String[]?args){???
?????????//這個類主要是設置郵件???
??????MailSenderInfo?mailInfo?=?new?MailSenderInfo();????
??????mailInfo.setMailServerHost("smtp.163.com");????
??????mailInfo.setMailServerPort("25");????
??????mailInfo.setValidate(true);????
??????mailInfo.setUserName("han2000lei@163.com");????
??????mailInfo.setPassword("**********");//您的郵箱密碼????
??????mailInfo.setFromAddress("han2000lei@163.com");????
??????mailInfo.setToAddress("han2000lei@163.com");????
??????mailInfo.setSubject("設置郵箱標題?如http://www.guihua.org?中國桂花網(wǎng)");????
??????mailInfo.setContent("設置郵箱內(nèi)容?如http://www.guihua.org?中國桂花網(wǎng)?是中國最大桂花網(wǎng)站==");????
?????????//這個類主要來發(fā)送郵件???
??????SimpleMailSender?sms?=?new?SimpleMailSender();???
??????????sms.sendTextMail(mailInfo);//發(fā)送文體格式????
??????????sms.sendHtmlMail(mailInfo);//發(fā)送html格式???
????}
??

最后,給出朋友們幾個注意的地方:?
1、使用此代碼你可以完成你的javamail的郵件發(fā)送功能。三個類缺一不可。?
2、這三個類我打包是用的com.util.mail包,如果不喜歡,你可以自己改,但三個類文件必須在同一個包中?
3、不要使用你剛剛注冊過的郵箱在程序中發(fā)郵件,如果你的163郵箱是剛注冊不久,那你就不要使用“smtp.163.com”。因為你發(fā)不出去。剛注冊的郵箱是不會給你這種權限的,也就是你不能通過驗證。要使用你經(jīng)常用的郵箱,而且時間比較長的。?
4、另一個問題就是mailInfo.setMailServerHost("smtp.163.com");mailInfo.setFromAddress("han2000lei@163.com");這兩句話。即如果你使用163smtp服務器,那么發(fā)送郵件地址就必須用163的郵箱,如果不的話,是不會發(fā)送成功的。?
5、關于javamail驗證錯誤的問題,網(wǎng)上的解釋有很多,但我看見的只有一個。就是我的第三個類。你只要復制全了代碼,我想是不會有問題的。

轉載于:https://www.cnblogs.com/zlzlzl1993/p/3397537.html

總結

以上是生活随笔為你收集整理的java mail的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。