java實(shí)現(xiàn)發(fā)送郵件的示例代碼
代碼
import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeUtility; import javax.mail.Session; import javax.mail.MessagingException; import javax.mail.Transport; /** * @author BuNuo */ public class SendHtmlMail { /** * @param to 郵件接收者 * @param subject 郵件主題 * @param messageText 郵件內(nèi)容,可以是html代碼 * @throws MessagingException * @throws java.io.UnsupportedEncodingException */ public static void sendMessage(String to, String subject, String messageText) throws MessagingException, java.io.UnsupportedEncodingException { // Step 1: Configure the mail session String from = "******"; //發(fā)送郵件的賬號(hào) String password = "******"; //Password String smtpHost = "smtp.163.com"; //SMTP服務(wù)器 java.util.Properties props = new java.util.Properties(); props.setProperty("mail.smtp.auth", "true");// 指定是否需要SMTP驗(yàn)證 props.setProperty("mail.smtp.host", smtpHost);// 指定SMTP服務(wù)器 props.put("mail.transport.protocol", "smtp"); Session mailSession = Session.getDefaultInstance(props); mailSession.setDebug(false);// 是否在控制臺(tái)顯示debug信息 // Step 2: Construct the message System.out.println("Constructing message - from=" + from + " to=" + to); InternetAddress fromAddress = new InternetAddress(from); InternetAddress toAddress = new InternetAddress(to); MimeMessage testMessage = new MimeMessage(mailSession); testMessage.setFrom(fromAddress); testMessage.addRecipient(javax.mail.Message.RecipientType.TO, toAddress); testMessage.setSentDate(new java.util.Date()); testMessage.setSubject(MimeUtility.encodeText(subject, "gb2312", "B")); testMessage.setContent(messageText, "text/html;charset=gb2312"); System.out.println("Message constructed"); // Step 3: Now send the message Transport transport = mailSession.getTransport("smtp"); transport.connect(smtpHost, from, password); transport.sendMessage(testMessage, testMessage.getAllRecipients()); transport.close(); System.out.println("Message sent!"); } }
測(cè)試代碼
String to = "173××××0190@163.com"; System.out.println("to=:"+to); String subject = "郵件測(cè)試"; // subject javamail自動(dòng)轉(zhuǎn)碼 StringBuffer message = new StringBuffer(); message.append("<table style='margin: 25px auto;' border='0' cellspacing='0' cellpadding='0' width='648' align='center'>"); message.append("<tbody>"); message.append("<tr><td style='color:#40AA53;'><h1 style='margin-bottom:10px;'>bjcodes</h1></td></tr>"); message.append("<tr>"); message.append("<td style='border-left: 1px solid #D1FFD1; padding: 20px 20px 0px; background: none repeat scroll 0% 0% #ffffff; border-top: 5px solid #40AA53; border-right: 1px solid #D1FFD1;'>"); message.append("<p>HelloWorld, 你好 </p>"); message.append("</td>"); message.append("</tr>"); message.append("<tr>"); message.append("<td style='border-left: 1px solid #D1FFD1; padding: 10px 20px; background: none repeat scroll 0% 0% #ffffff; border-right: 1px solid #D1FFD1;'>"); message.append("<p>您已經(jīng)成功為<strong>bjcodes</strong>會(huì)員!</p>"); message.append("<p style='font-weight:bold'>請(qǐng)點(diǎn)擊以下鏈接:<br>"); message.append("<a ); message.append("</td>"); message.append("</tr>"); message.append("<tr>"); message.append("<td style='border-bottom: 1px solid #D1FFD1; border-left: 1px solid #D1FFD1; padding: 0px 20px 20px; background: none repeat scroll 0% 0% #ffffff; border-right: 1px solid #D1FFD1;'>"); message.append("<p><img title='微信二維碼' src='http://bjcodes.com/images/code.jpg' alt=''></p>"); message.append("<p style='color:#060;font-size:9pt;'>掃一掃,關(guān)注 bjcodes 微信公共號(hào),更方便獲知每日精彩推薦</p>"); message.append("<p style='color:#060;font-size:9pt;'>想了解更多信息,請(qǐng)?jiān)L問(wèn) <a target='_blank'>http://www.bjcodes.com</a></p>"); message.append("</td>"); message.append("</tr>"); message.append("</tbody>"); message.append("</table>"); message.append("<style type='text/css'>"); message.append("body{font-size:14px;font-family:arial,verdana,sans-serif;line-height:1.666;padding:0;margin:0;overflow:auto;white-space:normal;word-wrap:break-word;min-height:100px}"); message.append("td, input, button, select, body{font-family:Helvetica, 'Microsoft Yahei', verdana}"); message.append("pre {white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;width:95%}"); message.append("th,td{font-family:arial,verdana,sans-serif;line-height:1.666}"); message.append("img{ border:0}"); message.append("header,footer,section,aside,article,nav,hgroup,figure,figcaption{display:block}"); message.append("</style>"); message.append("<style id='ntes_link_color' type='text/css'>a,td a{color:#064977}</style>"); try { SendHtmlMail.sendMessage(to, subject,message.toString()); } catch (javax.mail.MessagingException exc) { exc.printStackTrace(); } catch (java.io.UnsupportedEncodingException exc) { exc.printStackTrace(); }
測(cè)試結(jié)果
以上就是java實(shí)現(xiàn)發(fā)送郵件的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于JAVA 發(fā)送郵件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SSH框架網(wǎng)上商城項(xiàng)目第6戰(zhàn)之基于DataGrid的數(shù)據(jù)顯示
SSH框架網(wǎng)上商城項(xiàng)目第6戰(zhàn)之基于DataGrid的數(shù)據(jù)顯示,提供了豐富的選擇、排序、分組和編輯數(shù)據(jù)的功能支持,感興趣的小伙伴們可以參考一下2016-05-05Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(22)
下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你2021-07-07詳解Java中PriorityQueue的作用和源碼實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了Java中阻塞隊(duì)列PriorityQueue的作用和源碼實(shí)現(xiàn)的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),需要的小伙伴可以了解下2024-02-02Java多線程編程之訪問(wèn)共享對(duì)象和數(shù)據(jù)的方法
這篇文章主要介紹了Java多線程編程之訪問(wèn)共享對(duì)象和數(shù)據(jù)的方法,多個(gè)線程訪問(wèn)共享對(duì)象和數(shù)據(jù)的方式有兩種情況,本文分別給出代碼實(shí)例,需要的朋友可以參考下2015-05-05springboot植入pagerHelper的超詳細(xì)教程
這篇文章主要介紹了springboot植入pagerHelper的超詳細(xì)教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01使Java的JButton文字隱藏功能的實(shí)現(xiàn)(不隱藏按鈕的前提)
這篇文章主要介紹了使Java的JButton文字隱藏功能的實(shí)現(xiàn)(不隱藏按鈕的前提),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01在Spring Boot中實(shí)現(xiàn)多環(huán)境配置的方法
在SpringBoot中,實(shí)現(xiàn)多環(huán)境配置是一項(xiàng)重要且常用的功能,它允許開(kāi)發(fā)者為不同的運(yùn)行環(huán)境,這種方式簡(jiǎn)化了環(huán)境切換的復(fù)雜度,提高了項(xiàng)目的可維護(hù)性和靈活性,本文給大家介紹在Spring Boot中實(shí)現(xiàn)多環(huán)境配置的方法,感興趣的朋友跟隨小編一起看看吧2024-09-09Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(48)
下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你2021-08-08