调整Exchange接收连接器延迟参数解决SMTP代发送邮件问题

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同样适用!

时间: 2024-07-29 13:56:54

调整Exchange接收连接器延迟参数解决SMTP代发送邮件问题的相关文章

「深入 Exchange 2013」14 接收连接器

接收连接器在概念上要比发送连接器简单一点,每个接收连接器只用侦听来自你分配给它的ip地址和端口的请求,然后将SMTP会话传送出去即可.接收连接器使用权限组来决定哪些发送者被允许使用该连接器,权限组则是预先定义好的一系列安全主体对某个对象(当前场景下则是接收连接器)所拥有的权限,比如说是"任何有邮箱账户的用户"即Exchange Users,或者是"组织里的任何Exchange Server"即Exchange Servers.这种模型类似于NTFS权限模型,先把用户

Exchange 2013接收连接器介绍

Exchange 2013默认的接受连接器有5种如下: 那么,如何区分和理解这5种接收连接器呢? 首先明确接收连接器的定义: 接收连接器用于控制发送到 Exchange 组织的入站邮件流. 接收连接器的作用域限于单台服务器,及每个接收连接器都属于单台服务器,其设置仅对此台服务器生效. Exchange 2013默认的接收连接器虽然有5个,但按角色分只有两类.我们可以先从接收连接器的两类角色开始了解. 接收连接器两类角色分别为:FrontendTransport即前端传输,和HubTranspor

Exchange2013发送/接收连接器创建(五)

打开浏览器输入:https://mail.bjn99.cn/ecp就进入exchange的管理控制台登入界面: 在管理中心登入界面输入exchange服务器的管理密码进行登入: 本实验环境登入后发现报HTTP550错误,解决办法如下:在Exxchange shell命令行中禁用并启用账户,然后重新登入一下管理中心就可以了: 成功登入了Exxchange管理中心 第一步:创建发送连接器 给发送连接器起个名称"To Internet" 选择类型为"Internet"点击

为接收连接器添加访问权限

最近一个项目中,有一个自己的开源的系统,在配置了SMTP服务器之后,一直发送不了邮件,我最开始尝试修改接收连接器的接收IP,但是其实之前是包含在一个内部子网段里的,单独添加后仍然无效. 开源系统返回的日志: [mail] Sending email: VirtualClinic - SCM - The VirtualClinic -- vir-auth-service Deployment from develop on int-192.168.3.85  Started! [mail] Fai

关于“接收连接器”中各选项卡答疑篇

初次接触Exchange Server 2010时都会有一些关于"接收连接器"中各个选项卡会有一些疑问,今天我们来一起聊聊这个问题. 首先我先以一个初学者的身份提出如下问题: 1. 安装好Exchange 2010后,"接收连接器"中的"Default"和"Internet"哪条真正在邮件接收时起到了作用?,如下图示 2.关于"接收连接器"属性页中的"身份验证"各项指的是什么意思?有无详

Exchange2010与Office365混合部署升级到Exchange2016混合部署——Ex2010迁移接收连接器到Ex2016

在安装好Ex2016后,对于有的客户迁移接收连接器是个大工程,尤其一些连接器里面的IP Range有许多IP地址或者地址池,完全自动迁移方法比较复杂,这里采用的是折中简单的方法,分为以下三步: Ex2016 建立新的接收FrontendTransport连接器 Ex2016 EMS复制Ex2010连接器IP Ranges Set-ReceiveConnector "MailCasNew\ConnecterNew" -RemoteIPRanges ( Get-            Re

Exchange2013 默认接收连接器

exchange2013安装完成后,默认存在5个接收连接器. 接收连接器名称 角色 Client Frontend EXCHANGE2013 FrontendTransport Client Proxy EXCHANGE2013 Hub Transport Default EXCHANGE2013 Hub Transport Default Frontend EXCHANGE2013 FrontendTransport Outbound Proxy Frontend EXCHANGE2013 F

Linux 上使用 Gmail SMTP 服务器发送邮件通知

导读 假定你想配置一个 Linux 应用,用于从你的服务器或桌面客户端发送邮件信息.邮件信息可能是邮件简报.状态更新(如 Cachet).监控警报(如 Monit).磁盘时间(如 RAID mdadm)等等.当你要建立自己的 邮件发送服务器 传递信息时 ,你可以替代使用一个免费的公共 SMTP 服务器,从而避免遭受维护之苦. 谷歌的 Gmail 服务就是最可靠的 免费 SMTP 服务器 之一.想要从应用中发送邮件通知,你仅需在应用中添加 Gmail 的 SMTP 服务器地址和你的身份凭证即可.

Java通过socket实现smtp协议发送邮件

import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.net.Socket;import java.net.UnknownHostException; import com.sun.org.apache.xerces.internal.impl.dv.util.Base64; /**