程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 應用Java發送郵件的完成代碼

應用Java發送郵件的完成代碼

編輯:關於JAVA

應用Java發送郵件的完成代碼。本站提示廣大學習愛好者:(應用Java發送郵件的完成代碼)文章只能為提供參考,不一定能成為您想要的結果。以下是應用Java發送郵件的完成代碼正文


媒介

年夜家請留意:以下代碼應用的測試郵箱為126的郵箱,實測可用,留意,小我測試時,留意發送的郵件內容,郵件內容郵箱辦事器審查較嚴厲,少有失慎就會被剖斷為渣滓郵件,進而就會給你前往一個毛病碼:

實例代碼

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 = "用戶名"; // 發送人的用戶名
 private static final String PASSWORD = "暗碼"; // 發送郵件人的暗碼
 private static final String HOSTNAME = "smtp.126.com"; // smtp辦事器地址
 private static final String FROMADDRESS = USERNAME + "@126.com"; // 發件人郵箱
 private static final String FROMUSERNAME = "CNCD-碼上中國博客"; // 發件人姓名,可隨便寫
 private static final String EMAILTITLE = "碼上中國博客"; // 郵件題目
 private static final String EMAILCONTENT = "迎接應用 CNCD-碼上中國博客激活郵件 ,請點擊右邊鏈接完成賬號激活:\n";// 郵件內容

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

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

 // 創立一個銜接屬性。
 Properties props = new Properties(); //
 props.put("mail.smtp.host ", HOSTNAME); // 設置smtp的辦事器地址是smtp.126.com
 props.put("mail.smtp.auth", "true"); // 設置smtp辦事器要身份驗證。
 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); // 發送人地址
 from.setPersonal(MimeUtility.encodeText(FROMUSERNAME)); // 發件人名
 message.setFrom(from);
 // InternetAddress to = new InternetAddress("[email protected]");
 // //收件人地址

 // 創立郵件體:
 message.setRecipients(Message.RecipientType.TO,
  InternetAddress.parse(sendAddress));// 抄送給多小我的郵箱
 // message.setRecipient(Message.RecipientType.TO, to); // 只要抄送給本身的郵箱
 message.setSubject(MimeUtility.encodeText(EMAILTITLE)); // 郵件題目
 message.setSentDate(new Date());
 MimeMultipart msgMultipart = new MimeMultipart("mixed");// 指定為混雜關系
 message.setContent(msgMultipart);
 // 郵件內容
 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>這是體系主動發送的郵件,請勿答復!</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);
 // // 附件差別內嵌內容的一個特色是有文件名,為避免中文亂碼要編碼
 // file.setFileName(MimeUtility.encodeText(dh.getName()));
 // msgMultipart.addBodyPart(file);
 message.saveChanges();

 // 發送郵件的進程:95188
 Transport transport = session.getTransport("smtp"); // 創立銜接
 transport.connect(HOSTNAME, 25, USERNAME, PASSWORD); // 銜接辦事器
        // 辦事名,端口,發送郵件用戶名
        // (不要@前面),暗碼
 transport.sendMessage(message, message.getAllRecipients()); // 發送信息
 transport.close(); // 封閉
 System.out.println("發送終了");

 }
}

留意,初次應用本代碼的同伙們,建議除用戶名和暗碼換成本身的,其他的最好先不要改,不然很輕易被網易郵箱剖斷為渣滓郵件而不給發送,普通剖斷為渣滓郵件時,網易前往的毛病碼以下:

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)

意思是說,讓你前去毛病前往碼中的鏈接裡檢查贊助信息,你可以進入鏈接,發明,就有上述554的毛病碼代表的意思。這類情形普通就是被剖斷為渣滓郵件了。

其次,測試時不要頻仍運轉(發送)上述代碼中的郵件,太頻仍了,也輕易剖斷為渣滓郵件。好了,以上就是這篇文章的全體內容了,願望對年夜家的進修和任務能有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved