163郵箱問題:554 DT:SPM 163 smtp5,D9GowACHO7RNWNdXmXs1Bw--.9035S2

  最近公司須要開發一個自定義郵箱功能,上網查詢一下,利用163郵箱發送郵件。java

因爲163 的反垃圾機制,(坑爹機制。)spring

通常出現 554有在1)測試中用了test,測試,關鍵字在主題或者內容裏面。數組

可是我遇到的狀況是這樣的:相同的代碼,本地環境運行能發送郵件成功(郵件內容也是同樣的)而測試環境就不能。服務器

而後我啓用debug模式。測試

EHLO tclserver-124-251-36-10.tcl.opi.com //問題在這裏 。。。。。。。。。。。。 //裏面不少內容,截取有用的部分做爲說明
554 DT:SPM 163 smtp5,D9GowACHO7RNWNdXmXs1Bw--.9035S2 1473730639,please see http://mail.163.com/help/help_spam_16.htm?ip=124.251.36.10&hostid=smtp5&time=1473730639
DEBUG SMTP: got response code 554, with response: 554 DT:SPM 163 smtp5,D9GowACHO7RNWNdXmXs1Bw--.9035S2 1473730639,please see http://mail.163.com/help/help_spam_16.htm?ip=124.251.36.10&hostid=smtp5&time=1473730639

  163郵箱服務器,因爲我本地ip是沒有域的,而測試環境是有域名的。而後就沒有而後了spa

正確的的代碼是debug

package com.fortunedr.thirdReport; import java.util.Date; import java.util.Properties; import javax.mail.MessagingException; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSenderImpl; /** * 本類測試簡單郵件 直接用郵件發送 * * @author Administrator * */
public class SingleMailSend { public static void main(String args[]) throws MessagingException { SingleMailSend a=new SingleMailSend(); a.sendMail(); } private void sendMail() throws MessagingException{ JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); // 設定mail server
        senderImpl.setHost("smtp.163.com"); // 創建郵件消息
        SimpleMailMessage mailMessage = new SimpleMailMessage(); // 設置收件人,寄件人 用數組發送多個郵件 // String[] array = new String[] {"sun111@163.com","sun222@sohu.com"}; // mailMessage.setTo(array);
        mailMessage.setTo("1518737361@qq.com"); mailMessage.setFrom("your eamil"); mailMessage.setSubject(" 測試簡單文本郵件發送! "); mailMessage.setText(" 測試個人簡單郵件發送機制!!2222這是測試環境的代碼 "+new Date()); mailMessage.setSentDate(new Date()); senderImpl.setPort(25); senderImpl.setUsername("your email"); // 根據本身的狀況,設置username
        senderImpl.setPassword("password"); // 根據本身的狀況, 設置password
        senderImpl.setDefaultEncoding("UTF-8"); Properties prop = new Properties(); // prop.put("mail.smtp.auth", "true"); // 將這個參數設爲true,讓服務器進行認證,認證用戶名和密碼是否正確
        prop.put("mail.smtp.timeout", "25000"); prop.put("mail.debug", "true");//便於調試
        prop.put("mail.transport.protocol", "smtp"); /** * 關鍵代碼, * 出現554 DT:SPM 163 smtp5,D9GowACHO7RNWNdXmXs1Bw--.9035S2 1473730639, * please see http://mail.163.com/help/help_spam_16.htm?ip=124.251.36.10 * &hostid=smtp5&time=1473730639 緣由是:ip與域名不匹配。 */ prop.put("mail.smtp.localhost", "mail.digu.com");   prop.put("mail.smtp.auth", "false"); prop.put("mail.smtp.port", "25"); senderImpl.setJavaMailProperties(prop); // 發送郵件
 senderImpl.send(mailMessage); System.out.println(" 郵件發送成功.. "); } }

 

  總結:關於163郵箱的554的故事(事故)還有不少。我也是百度了好久才獲得這個答案。你們根據本身的狀況而定。本篇文章只針對ip與域不匹配的狀況調試

相關文章
相關標籤/搜索