调整SMTP会话连接时间解决邮件无法接收问题

最近一个朋友反映,他们公司在和欧洲某公司的邮件通讯过程,收到用户的投诉说:对方发过来的邮件,有时会有一两封收不到,但发送测试邮件,回复都没有问题!经过进一步了解,发过去的邮件,没有反映收不到,只是对方发过来的邮件,有时会收不到,但不是经常,只是偶尔发生!好吧,作为IT人员,最怕的就是偶发问题,无法重现故障,无法找到有价值的证据去排错!还好,在双方的共同努力下,最后也找到原因,调整相关参数,问题解决,下面将排错方法和过程分享给大家!

针对这个问题,首先让对方提供更有价值的信息,比如说:最近一次没收到的邮件,是谁、什么时候,发给谁的!还好,对方提供了欧洲某公司发过来的截图,有具体的发件人、收件人、发送时间,这下就好办了,马上查看SMTP LOG!当然,前提是你有开启详细的SMTP LOG记录(默认是没有开启的,条件允可的情况下,建议开启详细的SMTP LOG ,方便排错),如下:

首先通过对方提供的邮件地址,查询到对方的SMTP 会话IP为:213.150.22X.XXX,经过IP地位,此IP确实来自欧洲的奥地利:

在SMTP LOG中在查找此IP,发现确实有很多这个IP发过来的邮件,而且大多都是成功的!在反复过滤、查询后,终于LOG中发现了”Timed out“,这正是用户反应的问题,如下图:

从时间上分析,timed out为16:02:05,而SMTP会话开始时间为:15:52:01,即:大约10分钟后,出现Timed out!查看Exchange对应的SMTP参数:

Get-ReceiveConnector -Identity "Mail\Default SMTP" |FL

发现ConnectionTimeout 限制确实为10分钟!所以,问题找到,即:双方服务器在通过SMTP传送邮件的过程中,由于网络问题,或是邮件大小问题,超过SMTP连接限制的时间,导致邮件接受失败!

既然找到问题,就尝试修改限制时间来解决!参考下面的PowerShell:

https://technet.microsoft.com/en-us/library/bb125140.aspx?f=255&MSPPError=-2147217396

考虑到中国大陆到欧洲的网络问题,先将此参数调整为30分钟:

Set-ReceiveConnector -Identity "Mail\Default SMTP" -connectionTimeout 00:30:00

重启Microsoft Exchange Transport服务。

经过调整后,再观察几天,对方没有再反映此问题了!为了验证调整是否有效,分析调整后第二天的SMTP LOG,发现如下信息:

同样是上一次邮件地址和邮件服务器IP过来的SMTP会话,从8:34:57开始,到8:50:45结束,此SMTP Connection 会话持续了15分钟!证明上面的调整是正确、有效!

至于SMTP的ConnectionTimeout时间限制为多少合适呢?这个官方既然默认是10分钟,所以我们尽量还是以官方的为准,如果碰到这样的问题,建议一次不要调太高,要依你的网络质量、限制的邮件大小来调整,如此案例:邮件,大约5M,用时15分钟左右才完成,而邮件大小限制为10M,所以,相应的调整为30-40分钟,是合理的范围。

时间: 2024-10-13 06:06:35

调整SMTP会话连接时间解决邮件无法接收问题的相关文章

Exchange2010 SMTP错误码/解决方法列表

错误总表 420 1. Timeout Communication Problem Encountered During Transmission. Thie Is a Novell Groupwise Smtp Error 2. Tcp Read Error 3. Tcp Write Error 在联机时发生通讯中断的问题:Novell GroupWise SMTP服务器的错误讯息 此错误讯息只适用于Novell GroupWise SMTP服务器,在此不多做赘述. N/A 421 1. Se

JAVA+PHP+阿里云组件纯手工实现POP、SMTP、IMAP开发邮件服务器(二)

java开发邮件服务器的接收模块 用java建立socket服务端,监听端口25,实现SMTP协议.即可完成邮件服务器的接收模块. 这里要注意的是,SMTP协议其实可以分为两种.一种是你用手机.PC等客户端发邮件到邮件服务商的服务器的时候用的SMTP协议,这一类是需要登录验证的.一种是邮件服务商之间传递邮件的SMTP协议,此类协议是不需要登录的.比如你用Foxmail上你的QQ邮箱发送了一封邮件到163的邮箱.过程是这样的: 邮件从Foxmail通过SMTP协议发送到QQ邮箱的服务器. QQ邮箱

smtp模块+Gmail搭建邮件发送功能

声明:以下步骤在drupal7下测试通过(将gmail换为有smtp 服务器的sina邮箱可以发送邮件) 1.下载smtp模块: http://drupal.org/project/smtp(link is external) 2.解压模块,并在drupal下安装smtp模块. 3.配置stmp服务器:admin/config/system/smtp页面下配置 Turn this module on or off: On SMTP server: SMTP服务器地址(google为:smtp.g

[ASP.NET][Session] 使用会话管理解决 Session 丢失问题

使用会话管理解决 Session 丢失问题 步骤 1.在 CMD 中输入命令 cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 再执行 语法:aspnet_regsql.exe -S 服务器ip -U 数据库登录名 -P 数据库密码 -d 所要放入的数据库 -ssadd -sstype c 实例:aspnet_regsql.exe -S localhost -U sa -P 123456 -d ZSZ -ssadd -sstype c 执行成功的结

【转】Prestashop SMTP模式发送邮件客户邮件(联系我们页面)收到不的解决办法

Prestashop 一般默认使用 mail 函数发送邮件,邮件发送的IP地址就是服务器或者共享空间的IP地址.共享空间上面的网站很多,可能存在发送垃圾邮件的网站,导致共享空间的IP地址被其 他邮件服务商(gmail.hotmail等等)加入黑名单,使用mail发送的邮件全部不能够发送成功. 更换使用第三方邮件来发送邮件,Prestashop 后台设置的发送邮件模式更换成SMTP. 经过测试发现:使用SMTP发送邮件,当发件人为非SMTP账户邮箱时,发送邮件成功,但是收件人收不到邮件. 联系我们

PHP+socket+SMTP、POP3协议发送、接收邮件

1.实现SMTP协议的类dsmtp.cls.php: <?php          // 通过socket实现SMTP协议的功能// version: 1.1// author : DCC// create : 2014-01-17 23:38:24// modify : 2014-01-18 16:59:04// more   : http://www.thinkful.cn/archives/389.html          class Dmail_smtp{               

借用smtp.qq.com发邮件

至于sentmail和postfix的配置有多么麻烦学生在这里就不多废话了...反正是配置了N个小时,最终弄的头晕眼花也没弄好... 下面的方法可以让你完全摆脱这两个工具...当然,你要是想做邮件服务器的话就令当别论了...你要是只想让服务器自动发个邮件什么的,用下面的就行了 通常的做法都是,关闭本机的sendmail服务或者postfix服务, #执行下面的命令,各位大侠都对号入座吧 #sendmial service sendmail stop chkconfig sendmail off

java spring 开启SMTP服务发送QQ邮件

首先进入自己的QQ邮箱,在设置中修改账户信息 然后来至底部 点击开启,再用手机发送对应信息到指定号码,然后点击我已发送 获取授权码 注意提示: 到这里,相信你已经开通了SMTP服务,这样就可以在java code发送邮件了 接下来的是Spring 中使用邮件服务 首先是配置信息使用的是587端口,刚开始用465端口我纠结了好久(使用465端口的错误详情),用不了,你可以尝试,默认的25端口应该也是不适合的 <!-- 邮件服务 --> <bean id="mailSender&q

深入浅出SharePoint——配置List通过邮件来接收内容

应用场景:在SharePoint的开发中,我们经常需要通过接收并解析Mail的方式来进行数据通信. 解决方案:通常有两种方式:一种是直接使用公司的Exchange服务器,一种是在SharePoint Server所在的服务器上配置SMTP Virtual Server. 先介绍下后者的方式. 第一步:安装SMTP Feature.通过运行compmgmt命令或者直接到控制面板中打开Server Manger.确认SMTP组件已经被成功安装了. 第二步:通过运行InetMgr6或者打开IIS 6