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


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

由於163 的反垃圾機制,(坑爹機制。)

一般出現 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是沒有域的,而測試環境是有域名的。然后就沒有然后了

正確的的代碼是

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與域不匹配的情況

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM