最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用Java發(fā)送郵件的實(shí)現(xiàn)代碼

 更新時(shí)間:2016年08月31日 09:28:41   投稿:daisy  
這篇文章給大家分享了如何利用Java發(fā)送郵件,文章通過實(shí)例代碼介紹的很詳細(xì),有需要的可以參考借鑒。

前言

大家請注意:以下代碼使用的測試郵箱為126的郵箱,實(shí)測可用,注意,個(gè)人測試時(shí),注意發(fā)送的郵件內(nèi)容,郵件內(nèi)容郵箱服務(wù)器審查較嚴(yán)格,少有不慎就會(huì)被判定為垃圾郵件,進(jìn)而就會(huì)給你返回一個(gè)錯(cuò)誤碼:

實(shí)例代碼

import java.util.Date;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
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;
import javax.mail.internet.MimeUtility;

public class SendMailUtil {

 private static final String USERNAME = "用戶名"; // 發(fā)送人的用戶名
 private static final String PASSWORD = "密碼"; // 發(fā)送郵件人的密碼
 private static final String HOSTNAME = "smtp.126.com"; // smtp服務(wù)器地址
 private static final String FROMADDRESS = USERNAME + "@126.com"; // 發(fā)件人郵箱
 private static final String FROMUSERNAME = "CNCD-碼上中國博客"; // 發(fā)件人姓名,可隨意寫
 private static final String EMAILTITLE = "碼上中國博客"; // 郵件標(biāo)題
 private static final String EMAILCONTENT = "歡迎使用 CNCD-碼上中國博客激活郵件 ,請點(diǎn)擊右側(cè)鏈接完成賬號激活:\n";// 郵件內(nèi)容

 public static void main(String[] args) {
 try {
  sendEmail("825338623@qq.com", "用戶名:guopengfei,密碼:guopengfei");
 } catch (Exception e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 }

 /**
 * 發(fā)送郵件
 * @param sendAddress 要發(fā)送的郵箱地址
 * @param content 發(fā)送的內(nèi)容
 * @throws Exception
 */
 public static void sendEmail(String sendAddress, String content)
  throws Exception {

 // 創(chuàng)建一個(gè)連接屬性。
 Properties props = new Properties(); //
 props.put("mail.smtp.host ", HOSTNAME); // 設(shè)置smtp的服務(wù)器地址是smtp.126.com
 props.put("mail.smtp.auth", "true"); // 設(shè)置smtp服務(wù)器要身份驗(yàn)證。
 props.put("mail.transport.protocol", "stmp");
 Session session = Session.getInstance(props, new Authenticator() {
  protected PasswordAuthentication getPasswordAuthentication() {
  return new PasswordAuthentication(USERNAME, PASSWORD);
  }
 });
 Message message = new MimeMessage(session);
 InternetAddress from = new InternetAddress(FROMADDRESS); // 發(fā)送人地址
 from.setPersonal(MimeUtility.encodeText(FROMUSERNAME)); // 發(fā)件人名
 message.setFrom(from);
 // InternetAddress to = new InternetAddress("taozhida11@sina.cn");
 // //收件人地址

 // 創(chuàng)建郵件體:
 message.setRecipients(Message.RecipientType.TO,
  InternetAddress.parse(sendAddress));// 抄送給多個(gè)人的郵箱
 // message.setRecipient(Message.RecipientType.TO, to); // 只有抄送給自己的郵箱
 message.setSubject(MimeUtility.encodeText(EMAILTITLE)); // 郵件標(biāo)題
 message.setSentDate(new Date());
 MimeMultipart msgMultipart = new MimeMultipart("mixed");// 指定為混合關(guān)系
 message.setContent(msgMultipart);
 // 郵件內(nèi)容
 MimeBodyPart htmlPart = new MimeBodyPart();
 htmlPart.setContent(
  "<body><div style='width: 1000px;height: 300px;margin: 0px auto;margin-bottom:20px;border:1px solid #92B0DD;background-color: #FFFFFf;'><h3>這是系統(tǒng)自動(dòng)發(fā)送的郵件,請勿回復(fù)!</h3><br/>"+
 content+"</div></body>",
  "text/html;charset=UTF-8");
 // TODO 組裝的順序非常重要,一定要先組裝文本域,再組裝文件
 msgMultipart.addBodyPart(htmlPart);
 // 組裝附件
 // MimeBodyPart file = new MimeBodyPart();
 // FileDataSource file_datasource = new FileDataSource(
 // "D:\\report_data2.txt");
 // DataHandler dh = new DataHandler(file_datasource);
 // file.setDataHandler(dh);
 // // 附件區(qū)別內(nèi)嵌內(nèi)容的一個(gè)特點(diǎn)是有文件名,為防止中文亂碼要編碼
 // file.setFileName(MimeUtility.encodeText(dh.getName()));
 // msgMultipart.addBodyPart(file);
 message.saveChanges();

 // 發(fā)送郵件的過程:95188
 Transport transport = session.getTransport("smtp"); // 創(chuàng)建連接
 transport.connect(HOSTNAME, 25, USERNAME, PASSWORD); // 連接服務(wù)器
        // 服務(wù)名,端口,發(fā)送郵件用戶名
        // (不要@后面),密碼
 transport.sendMessage(message, message.getAllRecipients()); // 發(fā)送信息
 transport.close(); // 關(guān)閉
 System.out.println("發(fā)送完畢");

 }
}

注意,首次使用本代碼的朋友們,建議除了用戶名和密碼換成自己的,其余的最好先不要改,否則很容易被網(wǎng)易郵箱判定為垃圾郵件而不給發(fā)送,一般判定為垃圾郵件時(shí),網(wǎng)易返回的錯(cuò)誤碼如下:

com.sun.mail.smtp.SMTPSendFailedException: 554 DT:SPM 126 smtp2,DMmowACXoTzMk8VXVdKnEA--.1778S2 1472566222,please see http://mail.163.com/help/help_spam_16.htm?ip=117.114.147.13&hostid=smtp2&time=1472566222

 at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1829)
 at com.sun.mail.smtp.SMTPTransport.finishData(SMTPTransport.java:1634)
 at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:889)
 at SendMailUtil.sendEmail(SendMailUtil.java:88)
 at SendMailUtil.main(SendMailUtil.java:29)

意思是說,讓你前往錯(cuò)誤返回碼中的鏈接里查看幫助信息,你可以進(jìn)入鏈接,發(fā)現(xiàn),就有上述554的錯(cuò)誤碼代表的意思。這種情況一般就是被判定為垃圾郵件了。

其次,測試時(shí)不要頻繁運(yùn)行(發(fā)送)上述代碼中的郵件,太頻繁了,也容易判定為垃圾郵件。好了,以上就是這篇文章的全部內(nèi)容了,希望對大家的學(xué)習(xí)和工作能有所幫助。

相關(guān)文章

  • java9的JShell小工具和編譯器兩種自動(dòng)優(yōu)化方法

    java9的JShell小工具和編譯器兩種自動(dòng)優(yōu)化方法

    這篇文章主要介紹了java9的JShell小工具和編譯器兩種自動(dòng)優(yōu)化方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • springboot定時(shí)任務(wù)不起作用問題及解決

    springboot定時(shí)任務(wù)不起作用問題及解決

    文章主要介紹了Spring Boot中延遲加載bean的概念,并討論了如何解決定時(shí)任務(wù)不執(zhí)行的問題,通過設(shè)置`@Lazy(false)`注解,可以指定某些類不使用延遲加載,從而解決定時(shí)任務(wù)無法執(zhí)行的問題
    2024-11-11
  • Java?AQS?原理與?ReentrantLock?實(shí)現(xiàn)方法

    Java?AQS?原理與?ReentrantLock?實(shí)現(xiàn)方法

    AQS 的作用是解決同步器的實(shí)現(xiàn)問題,它將復(fù)雜的同步器實(shí)現(xiàn)分解為簡單的框架方法,開發(fā)者只需要實(shí)現(xiàn)少量特定的方法就能快速構(gòu)建出可靠的同步器,這篇文章主要介紹Java AQS原理與ReentrantLock實(shí)現(xiàn),需要的朋友可以參考下
    2025-03-03
  • 封裝jndi操作ldap服務(wù)器的工具類

    封裝jndi操作ldap服務(wù)器的工具類

    這篇文章主要介紹了封裝JNDI操作LDAP服務(wù)器的工具類,使用者只需要會(huì)使用List,Map 數(shù)據(jù)結(jié)構(gòu),大家參考使用吧
    2014-01-01
  • IntelliJ IDEA如何增加右鍵菜單

    IntelliJ IDEA如何增加右鍵菜單

    本文描述了在IntelliJ IDEA安裝后右鍵文件夾沒有相關(guān)選項(xiàng)的解決方案,通過打開注冊表編輯器并新建菜單項(xiàng),將IntelliJ IDEA添加到右鍵菜單中,并設(shè)置其圖標(biāo)和執(zhí)行路徑,最后,通過測試驗(yàn)證功能是否正常
    2025-01-01
  • Java調(diào)用Pytorch模型實(shí)現(xiàn)圖像識別

    Java調(diào)用Pytorch模型實(shí)現(xiàn)圖像識別

    這篇文章主要為大家詳細(xì)介紹了Java如何調(diào)用Pytorch實(shí)現(xiàn)圖像識別功能,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下
    2023-06-06
  • MyBatis-Plus 分頁插件配置的兩種方式實(shí)現(xiàn)

    MyBatis-Plus 分頁插件配置的兩種方式實(shí)現(xiàn)

    本文主要介紹了MyBatis-Plus 分頁插件配置的兩種方式實(shí)現(xiàn),包括使用PaginationInterceptor和MybatisPlusInterceptor兩種方式,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03
  • Java 十大排序算法之歸并排序刨析

    Java 十大排序算法之歸并排序刨析

    歸并排序是采用分治法的一個(gè)非常典型的應(yīng)用。先使每個(gè)子序列有序,再使子序列段間有序,也就是將已有的子序列合并,得到完全有序的序列;如果將兩個(gè)有序表合并成一個(gè)有序表,稱為二路歸并
    2021-11-11
  • Java空格替換逗號的實(shí)現(xiàn)示例

    Java空格替換逗號的實(shí)現(xiàn)示例

    在編程中,我們經(jīng)常需要對字符串進(jìn)行各種處理,其中一個(gè)常見的需求是將字符串中的逗號替換為空格,本文主要介紹了Java空格替換逗號的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • java null轉(zhuǎn)換為字符串的三種方法

    java null轉(zhuǎn)換為字符串的三種方法

    在Java開發(fā)中,正確處理null值至關(guān)重要,以避免空指針異常,本文介紹了三種常見的null值轉(zhuǎn)字符串方法:三元運(yùn)算符、Objects.toString方法、String.valueOf方法,感興趣的可以了解一下
    2024-10-10

最新評論

山丹县| 扎鲁特旗| 奉节县| 屯昌县| 南通市| 乾安县| 开封市| 阿拉善盟| 双鸭山市| 永修县| 浦东新区| 新昌县| 仙居县| 文安县| 客服| 文成县| 太康县| 大厂| 翁牛特旗| 营山县| 赣州市| 太白县| 江都市| 乳源| 镇赉县| 韩城市| 泰来县| 富宁县| 饶阳县| 长春市| 海兴县| 巴楚县| 当涂县| 富顺县| 凉城县| 桐庐县| 永新县| 资溪县| 东安县| 汉川市| 阜宁县|