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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

javamail发送邮件的简单实例[转]

發(fā)布時(shí)間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javamail发送邮件的简单实例[转] 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

http://www.blogjava.net/wangfun/archive/2009/04/15/265748.html

今天學(xué)習(xí)了一下JavaMail,javamail發(fā)送郵件確實(shí)是一個(gè)比較麻煩的問(wèn)題。為了以后使用方便,自己寫(xiě)了段代碼,打成jar包,以方便以后使用。呵呵?

以下三段代碼是我的全部代碼,朋友們?nèi)绻胗?#xff0c;直接復(fù)制即可。

第一個(gè)類(lèi):MailSenderInfo.java?

package?com.util.mail;???
/**???
*?發(fā)送郵件需要使用的基本信息?
*author?by?wangfun
http://www.5a520.cn?小說(shuō)520??
*/
????
import?java.util.Properties;????
public?class?MailSenderInfo?{????
????//?發(fā)送郵件的服務(wù)器的IP和端口????
????private?String?mailServerHost;????
????private?String?mailServerPort?=?"25";????
????//?郵件發(fā)送者的地址????
????private?String?fromAddress;????
????//?郵件接收者的地址????
????private?String?toAddress;????
????//?登陸郵件發(fā)送服務(wù)器的用戶(hù)名和密碼????
????private?String?userName;????
????private?String?password;????
????//?是否需要身份驗(yàn)證????
????private?boolean?validate?=?false;????
????//?郵件主題????
????private?String?subject;????
????//?郵件的文本內(nèi)容????
????private?String?content;????
????//?郵件附件的文件名????
????private?String[]?attachFileNames;??????
????/**???
??????*?獲得郵件會(huì)話屬性???
??????*/
????
????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;????
????}
????
}
???


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

第三個(gè)類(lèi):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);???
????}
???
}
???


下面給出使用上面三個(gè)類(lèi)的代碼:

public?static?void?main(String[]?args){???
?????????//這個(gè)類(lèi)主要是設(shè)置郵件???
??????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("設(shè)置郵箱標(biāo)題?如http://www.guihua.org?中國(guó)桂花網(wǎng)");????
??????mailInfo.setContent("設(shè)置郵箱內(nèi)容?如http://www.guihua.org?中國(guó)桂花網(wǎng)?是中國(guó)最大桂花網(wǎng)站==");????
?????????//這個(gè)類(lèi)主要來(lái)發(fā)送郵件???
??????SimpleMailSender?sms?=?new?SimpleMailSender();???
??????????sms.sendTextMail(mailInfo);//發(fā)送文體格式????
??????????sms.sendHtmlMail(mailInfo);//發(fā)送html格式???
????}
??

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

轉(zhuǎn)載于:https://www.cnblogs.com/yqskj/archive/2013/01/11/2855712.html

與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的javamail发送邮件的简单实例[转]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

主站蜘蛛池模板: 国产电影一区在线观看 | 日韩中文免费 | 91免费看网站 | 草久久久久 | 久久精品视频5 | 爱啪啪av | 久久久久久久国产精品美女 | 老鸭窝成人| 日本不卡视频 | 亚洲国产欧美视频 | 爱看av | 麻豆高清 | 西西人体做爰大胆gogo | 久久一区视频 | 日本h片在线观看 | 日韩色在线观看 | 亚洲色图影院 | 亚洲精品乱码久久久久久蜜桃图片 | 久久久久国产精品一区二区 | 天天做夜夜操 | 亚洲国产综合网 | 性欧美极品另类 | 97视频在线观看免费 | 国产区精品 | 动漫av在线播放 | av免费看网站| 亚洲免费av一区二区 | 狠狠a| 性饥渴的农村熟妇 | 婷婷激情四射 | aaaaa级少妇高潮大片免费看 | 久久伊人亚洲 | 麻豆av一区二区三区久久 | 日本大胆裸体做爰视频 | 欧美一区二区视频在线观看 | www色日本| 久草电影网站 | 中文字幕在线播放不卡 | japanese国产| 欧美在线观看免费高清 | 日韩福利| 欧美在线国产 | 人妻一区二区三区视频 | 成人免费片 | 中文字幕日韩一区二区三区 | 9久久9毛片又大又硬又粗 | 黑白配av | 在线观看自拍 | 国产喷白浆一区二区三区 | av天天操 | 亚洲国产精品va在线看黑人 | 成人黄色免费看 | 日韩女同互慰一区二区 | 足疗店女技师按摩毛片 | 精品国内自产拍在线观看视频 | 最好看的2019中文大全在线观看 | 亚洲人视频 | 欧美三级一区二区三区 | 成人动漫h在线观看 | 欧美成人黄色片 | 在线观看的黄色网址 | 五月开心激情 | 成人不卡av | 精品视频中文字幕 | 久久伊人精品视频 | 自拍欧美日韩 | 国产精品一区二区三区高潮 | 国产亚洲小视频 | 日本丰满少妇做爰爽爽 | 欧美久草视频 | 日本高清视频在线观看 | 肉色超薄丝袜脚交一区二区 | 靠逼在线观看 | 日韩欧| 伊人狼人综合 | 国产五月天婷婷 | 亚洲自拍天堂 | 国产1区2区3区中文字幕 | 中文日韩 | 美女操操操 | 日韩欧美激情 | 久久久国产成人一区二区三区 | 免费成人在线观看 | 天天干视频 | 在线成人福利 | 91国视频 | av自拍一区| 黄色aaaa | 欧美a图 | 久久久久亚洲av无码专区体验 | www久久久久| 亚洲乱色熟女一区二区三区 | 在线观看福利网站 | 国产r级在线观看 | 欧美俄罗斯乱妇 | 97免费在线观看视频 | 欧美日韩精品一区二区在线观看 | 第四色男人天堂 | 国产区视频在线观看 |