调整Exchange接收连接器延迟参数解决SMTP代发送邮件问题
2017-03-12 20:04
661 查看
Exchange在企业应用中,经常会有各种应用程序需要调用Exchange的SMTP服务来发送各知系统通知邮,如:OA、HR、E-flow签核系统等。
最近,碰到一个案例,用户反映某E-Flow签核系统的SMTP邮件通知功能迁移到2010后,E-Flow签核在提交和签核过程中变的很慢,有时还会发生超时,而无法完成E-Flow签核流程!
收到用户反映后,向E-Flow系统开发人员了解到,以前用的是Exchange 2003的SMTP服务,没有发现过,此问题是改到2010后出现的,所以重点怀疑Exchange 2010 SMTP的原因!
进一步了解到,此E-flow系统在所有提交、签核时都会生成邮件通知相关的用户。为了确保邮件通知成功,每提交一个邮件到SMTP服务器,都需要得到SMTP服务的确认,正是在提交的时候,大约需要等30秒左右,才能显示提交成功、或是签核完成!
在查看Exchange SMTP中继相关文章时,从官网找这个文章:
https://technet.microsoft.com/zh-cn/library/hh529935(v=exchg.141).aspx
从exchange 2010开始,针对队列引入了“卷影冗余”功能,该功能可在整个传送过程中为邮件提供冗余。使用卷影冗余,将延迟从传输数据库删除邮件,直至传输服务器确认该邮件的所有下一跃点都已完成传递。 Exchange 2010 传输服务器从非 Exchange 2010 源接收邮件时,Exchange 会尝试通过延迟对发送服务器的确认,直到确认邮件已成功在内部传递到所有后续跃点,来实现卷影冗余。这样,如果 Exchange 2010 服务器失败,则发送邮件服务器会假设邮件从未传递到 Exchange 并将再次尝试传递。相了解更多关于“卷影冗余”的功能介绍,可参考官方文档:https://technet.microsoft.com/zh-cn/library/dd351027(v=exchg.141).aspx
正是因为此功能:“Exchange会尝试通过延迟对发送服务器的确认”,所以E-Flow系统一直没有收到关于邮件是否完成传递的通知,一直在等待中,直到SMTP服务返回完成传递的通知后,才进行到下一步!
使用Get-ReceiveConnector -Identity " SMTP Application relay " | format-list
查看 -MaxAcknowledgementDelay 属性,值为30秒!正好和用户反应的,点一次提交或是签核,需要等30秒左右时间!
即:SMTP服务收到E-Flow系统发过来的SMTP请求,需要30秒后才会回复服务器确认信息。
依官方的介绍,可以尝试降低延迟确认时间或是完全禁用!因为此连接器专门提供给应用程序来作SMTP Relay功能,所以直接禁用!
Set-ReceiveConnector "SMTP Application relay" -MaxAcknowledgementDelay 0
重启SMTP服务后,用户反应问题得到解决!
此现象在Exchange 2010/2013同样适用!
最近,碰到一个案例,用户反映某E-Flow签核系统的SMTP邮件通知功能迁移到2010后,E-Flow签核在提交和签核过程中变的很慢,有时还会发生超时,而无法完成E-Flow签核流程!
收到用户反映后,向E-Flow系统开发人员了解到,以前用的是Exchange 2003的SMTP服务,没有发现过,此问题是改到2010后出现的,所以重点怀疑Exchange 2010 SMTP的原因!
进一步了解到,此E-flow系统在所有提交、签核时都会生成邮件通知相关的用户。为了确保邮件通知成功,每提交一个邮件到SMTP服务器,都需要得到SMTP服务的确认,正是在提交的时候,大约需要等30秒左右,才能显示提交成功、或是签核完成!
在查看Exchange SMTP中继相关文章时,从官网找这个文章:
https://technet.microsoft.com/zh-cn/library/hh529935(v=exchg.141).aspx
从exchange 2010开始,针对队列引入了“卷影冗余”功能,该功能可在整个传送过程中为邮件提供冗余。使用卷影冗余,将延迟从传输数据库删除邮件,直至传输服务器确认该邮件的所有下一跃点都已完成传递。 Exchange 2010 传输服务器从非 Exchange 2010 源接收邮件时,Exchange 会尝试通过延迟对发送服务器的确认,直到确认邮件已成功在内部传递到所有后续跃点,来实现卷影冗余。这样,如果 Exchange 2010 服务器失败,则发送邮件服务器会假设邮件从未传递到 Exchange 并将再次尝试传递。相了解更多关于“卷影冗余”的功能介绍,可参考官方文档:https://technet.microsoft.com/zh-cn/library/dd351027(v=exchg.141).aspx
正是因为此功能:“Exchange会尝试通过延迟对发送服务器的确认”,所以E-Flow系统一直没有收到关于邮件是否完成传递的通知,一直在等待中,直到SMTP服务返回完成传递的通知后,才进行到下一步!
使用Get-ReceiveConnector -Identity " SMTP Application relay " | format-list
查看 -MaxAcknowledgementDelay 属性,值为30秒!正好和用户反应的,点一次提交或是签核,需要等30秒左右时间!
即:SMTP服务收到E-Flow系统发过来的SMTP请求,需要30秒后才会回复服务器确认信息。
依官方的介绍,可以尝试降低延迟确认时间或是完全禁用!因为此连接器专门提供给应用程序来作SMTP Relay功能,所以直接禁用!
Set-ReceiveConnector "SMTP Application relay" -MaxAcknowledgementDelay 0
重启SMTP服务后,用户反应问题得到解决!
此现象在Exchange 2010/2013同样适用!
相关文章推荐
- 解决sina邮箱发送到cPanel邮件,接收不到邮件的问题
- Exchange无法发送邮件 未找到匹配的连接器来路由外部收件人解决办法
- 关于linux下的udp/tcp通信设置发送sendto/接收recvfrom信息超时的参数。解决通道堵塞问题。
- 解决wordpress无法发送邮件的问题|配置好WP-Mail-SMTP的前提
- 解决Exchange 2010邮件接收问题 事件ID1500X
- PHP使用SMTP发送邮件报错代码535问题解决
- 解决ios设备自带邮箱只能接收邮件不能发送邮件问题的方法
- smtp发邮件实现及邮件发送时的一些报错问题的解决
- python实战===使用smtp发送邮件的源代码,解决554错误码的问题,更新版!
- 使用 Mailx 通过 SMTP 在 Centos 上发送邮件,解决 WordPress 发送邮件问题,解决centos7不能发送邮件的问题
- c/c++ curl smtp 发送邮件 foxmail 中文乱码问题解决
- 使用Outlook发送邮件至移动设备导致移动设备接收winmail.dat问题解决方法
- 解决Exchange 2007 无法在虚拟机发送邮件的问题
- python实战===使用smtp发送邮件的源代码,解决554错误码的问题
- GoDaddy的SMTP发送邮件的问题及解决方法
- 解决exchange 2013发送邮件都在草稿箱内不能发送和删除问题
- 解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
- SMTP发送邮件附件问题已经得到解决!!!
- 解决Exchange 2007 SP1环境下向部分邮箱发送邮件提示未送达“#550 5.1.1 RESOLVER.ADR.ExRecipNotFound; not found ##”问题