• 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与域不匹配的情况

    学习的时间不一定要特定安排
  • 相关阅读:
    Java泛型【转】
    沉着
    selenium 自动化测试面试题及答案
    50道JAVA基础编程练习题
    50道JAVA基础编程练习题
    Kibana+Logstash+Elasticsearch 日志查询系统
    Java中this和super的用法总结
    Tensorflow官方文档中文版——第二章(瞎奖杯写)
    LATEX ——WinEdt 破解
    超参数优化
  • 原文地址:https://www.cnblogs.com/zhongzheng123/p/5869554.html
Copyright © 2020-2023  润新知