一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - 利用Java發(fā)送郵件的實(shí)現(xiàn)代碼

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

2020-06-09 11:43daisy JAVA教程

這篇文章給大家分享了如何利用Java發(fā)送郵件,文章通過(guò)實(shí)例代碼介紹的很詳細(xì),有需要的可以參考借鑒。

前言

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

實(shí)例代碼

?
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
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-碼上中國(guó)博客"; // 發(fā)件人姓名,可隨意寫(xiě)
 private static final String EMAILTITLE = "碼上中國(guó)博客"; // 郵件標(biāo)題
 private static final String EMAILCONTENT = "歡迎使用 CNCD-碼上中國(guó)博客激活郵件 ,請(qǐng)點(diǎn)擊右側(cè)鏈接完成賬號(hào)激活:\n";// 郵件內(nèi)容
 
 public static void main(String[] args) {
 try {
  sendEmail("[email protected]", "用戶名: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("[email protected]");
 // //收件人地址
 
 // 創(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ā)送的郵件,請(qǐng)勿回復(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ā)送郵件的過(guò)程: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ò)誤碼如下:

?
1
2
3
4
5
6
7
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)

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

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

延伸 · 閱讀

精彩推薦
  • JAVA教程Java中管理資源的引用隊(duì)列相關(guān)原理解析

    Java中管理資源的引用隊(duì)列相關(guān)原理解析

    這篇文章主要介紹了Java中管理資源的引用隊(duì)列相關(guān)原理解析,涉及到Java的垃圾回收機(jī)制方面的知識(shí),需要的朋友可以參考下 ...

    爪哇小博3012020-03-13
  • JAVA教程Java中的5種同步輔助類介紹

    Java中的5種同步輔助類介紹

    你提交了一些任務(wù),但你想等它們都完成了再做另外一些事情;你提交了一些任務(wù),但是不想讓它們立刻執(zhí)行,等你喊123開(kāi)始的時(shí)候,它們才開(kāi)始執(zhí)行;等...

    Java教程網(wǎng)2082019-11-20
  • JAVA教程Java中break、continue、return語(yǔ)句的使用區(qū)別對(duì)比

    Java中break、continue、return語(yǔ)句的使用區(qū)別對(duì)比

    這篇文章主要介紹了Java中break、continue、return語(yǔ)句的使用區(qū)別對(duì)比,本文用非常清爽簡(jiǎn)明的語(yǔ)言總結(jié)了這三個(gè)關(guān)鍵字的使用技巧,并用一個(gè)實(shí)例對(duì)比使用結(jié)果...

    junjie2452019-12-20
  • JAVA教程整理很詳細(xì)的Java正則表達(dá)式使用大全

    整理很詳細(xì)的Java正則表達(dá)式使用大全

    這篇文章為大家整理了很詳細(xì)的Java正則表達(dá)式使用大全,大家在使用Java正則表達(dá)式的時(shí)候可查閱這篇文章,認(rèn)為不錯(cuò)的朋友可以收藏起來(lái) ...

    elleniou2342020-03-11
  • JAVA教程Springmvc restful配置遇到的小坑

    Springmvc restful配置遇到的小坑

    本文是小編給大家?guī)Я说腟pringmvc restful配置遇到的小小坑,小編給大家?guī)?lái)了問(wèn)題原因及解決辦法,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看下...

    超人不會(huì)飛飛飛3742020-05-27
  • JAVA教程Java中的Vector和ArrayList區(qū)別及比較

    Java中的Vector和ArrayList區(qū)別及比較

    這篇文章主要介紹了Java中的Vector和ArrayList區(qū)別及比較,本文從API、同步、數(shù)據(jù)增長(zhǎng)、使用模式4個(gè)方面總結(jié)了它們之間的不同之處,需要的朋友可以參考下 ...

    junjie3542019-12-14
  • JAVA教程Java 交換兩個(gè)變量的數(shù)值實(shí)現(xiàn)方法

    Java 交換兩個(gè)變量的數(shù)值實(shí)現(xiàn)方法

    下面小編就為大家?guī)?lái)一篇Java 交換兩個(gè)變量的數(shù)值實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧 ...

    jingxian3592020-05-28
  • JAVA教程Java中常用的類型轉(zhuǎn)換(推薦)

    Java中常用的類型轉(zhuǎn)換(推薦)

    這篇文章主要介紹了Java中常用的類型轉(zhuǎn)換(推薦)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下 ...

    27780850011522020-05-19
主站蜘蛛池模板: 97热在线 | 亚洲白拍 | 九九热视频免费 | 日韩日日日 | 国产卡一卡二卡三卡四 | 很黄的网站在线观看 | 果冻传媒和91制片厂网站软件 | 亚洲精品九色在线网站 | bnb99八度免费影院 | 2021国产麻豆剧传媒剧情 | 亚洲春黄在线观看 | 扒开女人屁股眼看个够 | 激情五色月 | 精品麻豆国产 | 亚洲精品国产在线 | 国产做a爰片久久毛片 | 王的视频vk| 视频在线观看高清免费 | 99热精品成人免费观看 | 欧美在线播放一区二区 | 精品一区二区三区在线视频观看 | 欧美a一级片 | 九九在线精品亚洲国产 | 麻豆小视频在线观看 | 国产精品免费看香蕉 | 国产精品永久免费视频观看 | 国产免费午夜 | 欧美综合一区二区三区 | 日韩毛片在线影视 | asianfemdom冷柔女王| 91色视| 女人叉开腿让男人桶 | 深夜福利在线播放 | xxxx在线视频 | 俄罗斯妈妈235 | 国产成人8x视频一区二区 | 国产人妖ts在线视频网 | 国产精品亚洲午夜不卡 | 我的漂亮朋友在线观看全集免费 | 97超pen个人视频公开视频视 | 蜜月aⅴ免费一区二区三区 蜜桃影像传媒推广 |