Dns解析出的ip不通导致无法发送邮件

问题:搬入公司新址,使用一运营商的专线网络后(原来使用电信宽带),经常有同事反馈有时无法发送邮件,有时能成功。今天有同事反馈无法发邮件,但他的账号在别人pc使用上是正常的,收发没有问题。Web页面模式登录邮箱,收发正常。

排查过程

在自己的pc上测试发送邮件,并抓包。观察现象正常。公司使用263的邮件服务器,抓包显示如下:

接收过程:

过滤smtp | |tcp.port==995 || dns contains  “公司域名”后如下显示:

发送过程:

tcp.port==25  ||  dns  contains  "公司域名“  后显示如下:

可以收发,让同事检查自己配置是否有错。有事先走了,下午问他,反馈重新安装foxmail还是没法发,安装另一款邮件程序还是发不了。

在自己的机子上测试,发现也发不了,连接错误,奇怪,抓包观察?

奇怪,为什么没有发smtp协议消息消息呢?过滤tcp的端口25,看这个端口有触发没有?

过滤tcp.port==25

发现没有握手通过,这个ip地址211.150.65.66从哪里来的?跟踪上面的包。

Dns的resonse消息里有这个ip地址。

根据dns的发送id找到本机发出的dns 的query查询邮件发送服务器域名消息,想起foxmail里的服务器里对应域名设置。

根据抓包发现,这里设置的域名,发送邮件时会主动去查询。

在dos下去ping这个地址,发现ping不通。

由此,判断是dns给的这个地址不通导致发送邮件失败。

Ping域名发现,dns给的ip地址不通。

但有一次ping通了,获取的ip是58.215.117.69,ping这个ip是可达的。

抓包发现dns到一个能够成功的ip,ping通了。直接ping这个ip如下图。

于是把stmp服务器这里的域名改成这个ip地址,试发一下。

抓包查看消息

发送成功,消息显示没有dns的过程,直接连接这个ip地址进入鉴权认证过程,发送过程,问题解决。

结论:

  1. Foxmail工作过程,服务器设置为域名情况下,先查询域名对应的ip地址,然后通过tcp协议连接目标ip995端口,三次握手,建立tcp连接,连上上后,使用pop3协议进行收取文件。tcp连接目标ip的25端口,三步握手建立tcp连接,连接成功后,使用smtp协议进行发送邮件。
  2. Dns查询接收发送服务器域名的过程和tcp连接收发邮件是两个过程,dns成功了,但tcp连接失败会收发失败。
  3. 相同的pc,每次dns获取到同一url地址有可能是不同的,如下图:

当获得无法tcp连接成功的ip时,会导致邮件发送失败。

不同的pc获取同一url地址也可能不同,获得可达ip地址的,发送邮件成功,反之,发送失败。

同时,每个dns获取到的url地址的ip都有一定的生存时间,当缓存中存在此对应关系时,不会再次查询,直到缓存失效。

  1. Wireshark里可用contains双引号字符串来查询协议层里包含的字符串,方便查询对应的包。如图:
  1. Foxmail里的pop3服务器和smtp服务器设置成ip,收发邮件时不进行dns查询过程,速度更快一些。
  2. Ping 域名的过程其实就是dns缓存里没有的情况下,先去dns的query过程,得到响应response后,再去向目标ip发出icmp的request消息。

foxmail发送邮件邮件发送失败故障排查过程相关推荐

  1. 邮件发送失败服务器繁忙,★邮件发送失败的原因和解决方法

    以下是对发 Hi. This is the PowerMail SMTP Server 1.0 at 72mail.cn . I'm afraid I wasn't able to deliver y ...

  2. 关于服务器上发送邮件程序发送失败的解决方案

    安装McAfee后,Foxmail无法发送邮件,提示服务器积极拒绝! 2010-08-19 16:44 麦咖啡是一款不错的杀毒软件,但是,刚安装后,按照默认设置,在使用的过程中,会出现一些问题,如Fo ...

  3. Contact Form 7邮件发送失败的解决办法 - 风沙渡

    Contact Form 7邮件发送失败的解决办法 - 风沙渡 时间 2014-08-25 19:47:00 博客园-所有随笔区 原文  http://www.cnblogs.com/wuyingho ...

  4. Contact Form 7邮件发送失败的解决办法

    Contact Form 7邮件发送失败的解决办法 一.contact form 7无法发送邮件的原因 对mail()函数的不支持. Contact Form 7表单提交失败在使用过程中会出现,归根结 ...

  5. mysql数据库binlog日志截断报错,导致mysql主从同步失败故障排查

    mysql数据库binlog日志截断报错,导致mysql主从同步失败故障排查 Got fatal error 1236 from master when reading data from binar ...

  6. 腾讯企业邮箱外域邮件发送失败原因及其解决方案

    腾讯企业邮箱外域邮件发送失败原因及其解决方案 参考文章: (1)腾讯企业邮箱外域邮件发送失败原因及其解决方案 (2)https://www.cnblogs.com/chen110xi/p/465067 ...

  7. exchange无法收发邮件_MAPI session超过Exchange最大限制,邮件发送失败的终极解决方法...

    前言:1.当今世界,Email已经成为一种通用的办公方式,并且是沟通地球村的一座重要桥梁.在使用Email,特别是Outlook收发邮件时,我们经常会碰到邮件发送失败的问题.在这种情况下,我们一般首先 ...

  8. 记一次.Net Core程序启动失败的排查过程

    阅文时长 | 2分钟 字数统计 | 3212字符 主要内容 | 1.引言&背景 2.排查.NetCore启动失败详细过程 3.声明与参考资料 『记一次.Net Core程序启动失败的排查过程』 ...

  9. oracle bug号,《一次Oracle bug的故障排查过程思考》的问题重现解决

    在<一次Oracle bug的故障排查过程思考>这个问题排查过程当中,当时和同事们一块儿猜想.实验.论证,昨天有幸,通过了精心设计,在生产环境中,进行了问题重现,以及解决的部分验证.sql ...

最新文章

  1. pip 查看安装路径
  2. getBoundingClientRect()方法
  3. w3cschool的jQuery Mobile教程总结
  4. 【采用】规则引擎Pyke与PyClips对比研究报告(高大上啊,第一次听说pyke和pyclips这俩词~)
  5. 成功解决explicit device specific/device:GPU:0' because no supported kernel for GPU devices is available.
  6. 各项技术对正则表达式的支持
  7. redis安装(linux)
  8. Android之实现夸克浏览器书签和历史页面滑动时候右上角图标切换效果
  9. centos中 npm install 被kill的解决方案
  10. unison+inotify-tools实现双向实时同步
  11. n-1 java_【Java】 剑指offer(53-2) 0到n-1中缺失的数字
  12. java interface作用是什么_Java注解总结:史上最全,有这一篇就够了
  13. 线性回归公式推导与代码实现
  14. 如何用vs2013开发人员命令提示工具执行一个方法(一个简单的demo)
  15. 打飞机小游戏,附带源码
  16. seay代码审计工具_渗透测试 网站代码审计等基础方法篇
  17. 【目标检测】YOLO系列总结
  18. 和风OUC-Systeminfo获取客户端基本系统信息
  19. Debussy 快速上手教程
  20. 邦纳超声波传感器T30UXDA

热门文章

  1. 三位一体集大乘---论互联网金融战略
  2. 一个苦逼次世代游戏建模师的内心独白,请在家长的陪同下阅读
  3. 在Windows 2003利用IIS 6.0搭建ASP+SqlServer网站环境
  4. XP停止更新 企业电脑该选择什么安全软件
  5. 为什么说科大讯飞智能办公本X2是轻办公利器?
  6. CSS 实现居中的各种方式
  7. jBPM jPDL 用户开发手册 3.2.3 - 第10章
  8. 深度学习环境配置之一——Ubuntu系统安装
  9. 计算机毕业设计项目大全
  10. zabbix 电话报警