foxmail发送邮件邮件发送失败故障排查过程
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地址进入鉴权认证过程,发送过程,问题解决。
结论:
- Foxmail工作过程,服务器设置为域名情况下,先查询域名对应的ip地址,然后通过tcp协议连接目标ip995端口,三次握手,建立tcp连接,连上上后,使用pop3协议进行收取文件。tcp连接目标ip的25端口,三步握手建立tcp连接,连接成功后,使用smtp协议进行发送邮件。
- Dns查询接收发送服务器域名的过程和tcp连接收发邮件是两个过程,dns成功了,但tcp连接失败会收发失败。
- 相同的pc,每次dns获取到同一url地址有可能是不同的,如下图:
当获得无法tcp连接成功的ip时,会导致邮件发送失败。
不同的pc获取同一url地址也可能不同,获得可达ip地址的,发送邮件成功,反之,发送失败。
同时,每个dns获取到的url地址的ip都有一定的生存时间,当缓存中存在此对应关系时,不会再次查询,直到缓存失效。
- Wireshark里可用contains双引号字符串来查询协议层里包含的字符串,方便查询对应的包。如图:
- Foxmail里的pop3服务器和smtp服务器设置成ip,收发邮件时不进行dns查询过程,速度更快一些。
- Ping 域名的过程其实就是dns缓存里没有的情况下,先去dns的query过程,得到响应response后,再去向目标ip发出icmp的request消息。
foxmail发送邮件邮件发送失败故障排查过程相关推荐
- 邮件发送失败服务器繁忙,★邮件发送失败的原因和解决方法
以下是对发 Hi. This is the PowerMail SMTP Server 1.0 at 72mail.cn . I'm afraid I wasn't able to deliver y ...
- 关于服务器上发送邮件程序发送失败的解决方案
安装McAfee后,Foxmail无法发送邮件,提示服务器积极拒绝! 2010-08-19 16:44 麦咖啡是一款不错的杀毒软件,但是,刚安装后,按照默认设置,在使用的过程中,会出现一些问题,如Fo ...
- Contact Form 7邮件发送失败的解决办法 - 风沙渡
Contact Form 7邮件发送失败的解决办法 - 风沙渡 时间 2014-08-25 19:47:00 博客园-所有随笔区 原文 http://www.cnblogs.com/wuyingho ...
- Contact Form 7邮件发送失败的解决办法
Contact Form 7邮件发送失败的解决办法 一.contact form 7无法发送邮件的原因 对mail()函数的不支持. Contact Form 7表单提交失败在使用过程中会出现,归根结 ...
- mysql数据库binlog日志截断报错,导致mysql主从同步失败故障排查
mysql数据库binlog日志截断报错,导致mysql主从同步失败故障排查 Got fatal error 1236 from master when reading data from binar ...
- 腾讯企业邮箱外域邮件发送失败原因及其解决方案
腾讯企业邮箱外域邮件发送失败原因及其解决方案 参考文章: (1)腾讯企业邮箱外域邮件发送失败原因及其解决方案 (2)https://www.cnblogs.com/chen110xi/p/465067 ...
- exchange无法收发邮件_MAPI session超过Exchange最大限制,邮件发送失败的终极解决方法...
前言:1.当今世界,Email已经成为一种通用的办公方式,并且是沟通地球村的一座重要桥梁.在使用Email,特别是Outlook收发邮件时,我们经常会碰到邮件发送失败的问题.在这种情况下,我们一般首先 ...
- 记一次.Net Core程序启动失败的排查过程
阅文时长 | 2分钟 字数统计 | 3212字符 主要内容 | 1.引言&背景 2.排查.NetCore启动失败详细过程 3.声明与参考资料 『记一次.Net Core程序启动失败的排查过程』 ...
- oracle bug号,《一次Oracle bug的故障排查过程思考》的问题重现解决
在<一次Oracle bug的故障排查过程思考>这个问题排查过程当中,当时和同事们一块儿猜想.实验.论证,昨天有幸,通过了精心设计,在生产环境中,进行了问题重现,以及解决的部分验证.sql ...
最新文章
- pip 查看安装路径
- getBoundingClientRect()方法
- w3cschool的jQuery Mobile教程总结
- 【采用】规则引擎Pyke与PyClips对比研究报告(高大上啊,第一次听说pyke和pyclips这俩词~)
- 成功解决explicit device specific/device:GPU:0' because no supported kernel for GPU devices is available.
- 各项技术对正则表达式的支持
- redis安装(linux)
- Android之实现夸克浏览器书签和历史页面滑动时候右上角图标切换效果
- centos中 npm install 被kill的解决方案
- unison+inotify-tools实现双向实时同步
- n-1 java_【Java】 剑指offer(53-2) 0到n-1中缺失的数字
- java interface作用是什么_Java注解总结:史上最全,有这一篇就够了
- 线性回归公式推导与代码实现
- 如何用vs2013开发人员命令提示工具执行一个方法(一个简单的demo)
- 打飞机小游戏,附带源码
- seay代码审计工具_渗透测试 网站代码审计等基础方法篇
- 【目标检测】YOLO系列总结
- 和风OUC-Systeminfo获取客户端基本系统信息
- Debussy 快速上手教程
- 邦纳超声波传感器T30UXDA