收件人没有收到 Microsoft Dynamics CRM 的用户通过使用 Microsoft Dynamics CRM web 客户端发送的电子邮件

症状

Microsoft Dynamics CRM 3.0 web 客户端

当 Microsoft Dynamics CRM 的用户通过使用 Microsoft Dynamics CRM 3.0 web 客户端发送一封电子邮件时,收件人没有收到电子邮件。满足以下条件时,会发生此问题:

  • 在单独的服务器上安装了 Microsoft Dynamics CRM 服务器组件和 Microsoft Exchange Server。

  • 在 Microsoft Dynamics CRM 服务器组件的安装,您键入 Exchange 服务器的名称作为传入的简单邮件传输协议 (SMTP) 服务器名称和传出 SMTP 服务器名。

  • Microsoft Dynamics CRM 服务器已安装本地 SMTP 服务。

注意:在 Microsoft Dynamics CRM 服务器上,您可以看到以下目录中未解析的电子邮件︰

C:\Inetpub\mailroot\Badmail此外,您可能会收到以下错误消息︰

"令牌初始化失败"初始化令牌 FailureT

Microsoft Dynamics CRM 4.0 或 Microsoft Dynamics CRM 2011 web 客户端

当 Microsoft Dynamics CRM 的用户通过使用 Microsoft Dynamics CRM 4.0 或 Microsoft Dynamics CRM 2011 web 客户端发送一封电子邮件时,电子邮件发送或进行排队。但是,如果出现问题的用户发送电子邮件时,用户会收到下列错误消息之一中的电子邮件活动。

错误消息 1

此邮件尚未提交以便进行传递。至今已进行了 1 次尝试。

错误消息 2

邮件传递失败。它必须重新提交以进行任何进一步的处理。

此外,您收到类似于下面的 MSCRMEmailLog 事件日志中的错误消息︰

事件类型︰ 错误

事件源︰ MSCRMEmailLog

事件类别︰ 无

事件 ID:0

Date:Date
Time:Time
User:N/A

Computer:ComputerName
说明: #61042-时发生错误 smtp 处理传出电子邮件的主题"测试 3 今天 CRM:0001011": http://adsrv:81/MS1 传递到 adsrv。System.Net.Mail.SmtpException︰ 无法发送邮件。---> System.Net.WebException︰ 无法连接到远程服务器---> System.Net.Sockets.SocketException︰ 无法建立连接,因为目标机器积极地拒绝它

在 System.Net.Sockets.Socket.DoConnect (终结点 endPointSnapshot,SocketAddress socketAddress)

在 System.Net.Sockets.Socket.InternalConnect (上述任何终结点)

在 System.Net.ServicePoint.ConnectSocketInternal (布尔型 connectFailure、 套接字 s4、 套接字 s6 插座及插座,ip 地址和地址、 状态 ConnectSocketState、 IAsyncResult asyncResult、 Int32 超时异常和异常)

---内部异常的堆栈跟踪---结束

在 System.Net.ServicePoint.GetConnection (PooledStream PooledStream,对象的所有者、 布尔异步,ip 地址和地址、 套接字和 abortSocket,套接字和 abortSocket6,Int32 超时)

在 System.Net.PooledStream.Activate 对象 owningObject,布尔异步、 Int32 超时 (GeneralAsyncDelegate 异步回调操作)

在 System.Net.PooledStream.Activate (对象 owningObject,GeneralAsyncDelegate 异步回调操作)

在 System.Net.ConnectionPool.GetConnection (对象 owningObject、 GeneralAsyncDelegate 异步回调操作、 Int32 creationTimeout)

在 System.Net.Mail.SmtpConnection.GetConnection (字符串主机,端口 Int32)

在 System.Net.Mail.SmtpTransport.GetConnection (字符串主机,端口 Int32)

在 System.Net.Mail.SmtpClient.GetConnection()

在 System.Net.Mail.SmtpClient.Send (MailMessage 消息)

---内部异常的堆栈跟踪---结束

在 System.Net.Mail.SmtpClient.Send (MailMessage 消息)

在 Microsoft.Crm.Tools.Email.Providers.SmtpPollingSendEmailProvider.SendMessage (MailMessage mailMessage)

在 Microsoft.Crm.Tools.Email.Providers.SmtpPollingSendEmailProvider.ProcessMessageInternal (电子邮件 emailMessage)

在 Microsoft.Crm.Tools.Email.Providers.CrmPollingSendEmailProvider.ProcessMessage (电子邮件 emailMessage)

在 Microsoft.Crm.Tools.Email.Providers.CrmPollingSendEmailProvider.Run()



有关详细信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

原因

转发电子邮件信息传送到 Exchange 服务器的本地 SMTP 服务器依赖于 Microsoft Dynamics CRM。此问题是以下原因之一︰

  • 在 Microsoft Dynamics CRM 服务器上的 SMTP 配置被配置为不转发电子邮件到 Exchange 服务器的邮件。

  • Exchange 服务器未配置为允许从 Microsoft Dynamics CRM 服务器中继邮件。

解决方案

若要解决此问题,请执行以下步骤:

步骤 1︰ 在 Microsoft Dynamics CRM 服务器转发电子邮件信息传送到 Exchange 服务器上配置 SMTP

  1. 在 Microsoft Dynamics CRM 服务器上,打开 Internet Information Services (IIS)。若要执行此操作,单击开始,单击管理工具,然后单击Internet Information Services (IIS) 管理器

  2. 在 Internet Information Services (IIS) 管理器展开默认 SMTP 虚拟服务器,右键单击,指向新建,,然后单击

  3. 在新的 SMTP 向导中,在指定的域类型中单击远程,然后单击下一步

  4. 名称框中,键入您的域名,然后单击完成

  5. 在右窗格中,右键单击您在第 2 到第 4 步中添加的域名,然后单击属性

  6. 常规选项卡上单击以选中允许将传入邮件中继到此域对话框,然后单击所有邮件都转发到智能主机。在所有邮件都转发到智能主机下的框中,键入 Exchange 服务器的名称,然后单击确定

  7. 重新启动 Microsoft Dynamics CRM 服务器上的 SMTP 服务。若要执行此操作,请单击开始,单击管理工具,然后单击服务简单邮件传输协议 (SMTP),用鼠标右键单击,然后单击重新启动

步骤 2︰ 配置 Exchange 服务器以允许来自 Microsoft Dynamics CRM 服务器的中继邮件

Exchange Server 2003

如果您使用的 Microsoft Exchange Server 2003年,您必须首先配置中继限制,然后验证连接控件。

配置的中继限制
  1. 单击开始,指向程序、 指向Microsoft Exchange,,然后单击系统管理器中

  2. 单击服务器的 Exchange 服务器名称单击协议,和,然后单击SMTP

  3. 用鼠标右键单击默认 SMTP 虚拟服务器,单击属性,然后单击访问选项卡。

  4. 中继限制区域中,单击中继

  5. 验证仅以下列表选项被选中,然后将 Microsoft Dynamics CRM 服务器添加到列表。

    如果您使用的 Microsoft Dynamics CRM 4.0 或 Microsoft Dynamics CRM 2011年,确保添加了交换路由器安装到该列表的服务器。

  6. 请重新启动 SMTP 服务。若要执行此操作,请执行以下步骤:

    1. 单击开始,指向程序,指向管理工具,然后单击服务

    2. 简单邮件传输协议 (SMTP),用鼠标右键单击,然后单击重新启动

验证连接控件
  1. 单击开始,指向程序、 指向Microsoft Exchange,,然后单击系统管理器中

  2. 单击服务器的 Exchange 服务器名称单击协议,和,然后单击SMTP

  3. 用鼠标右键单击默认 SMTP 虚拟服务器,单击属性,然后单击访问选项卡。

  4. 连接控件区域中,单击连接

  5. 默认情况下,选择除下面列表外所有选项。 如果 Microsoft Dynamics CRM 服务器添加到此列表时,您必须联系 Exchange 管理员以确定 Microsoft Dynamics CRM 服务器已添加的原因。

    注意:对于 Microsoft Dynamics CRM 电子邮件正常运行,Microsoft Dynamics CRM 服务器必须能够连接到 Exchange 服务器。

  6. 如果选择仅以下列表选项,您必须将 Microsoft Dynamics CRM 服务器添加到列表以允许其连接到 Exchange 服务器。

  7. 如果您的连接控制设置进行任何更改,请重新启动 SMTP 服务。若要执行此操作,请执行以下步骤:

    1. 单击开始,指向程序,指向管理工具,然后单击服务

    2. 简单邮件传输协议 (SMTP),用鼠标右键单击,然后单击重新启动

Exchange Server 2007

如果您使用的 Microsoft Exchange Server 2007年,必须创建新的交换接收连接器、 配置匿名用户接口、 协议为配置权限接收连接器,然后重新启动 Exchange 服务器上的 Microsoft Exchange 传输服务。

创建交换接收连接器
  1. 打开 Exchange 管理控制台。

  2. 展开服务器配置

  3. 单击集线器传输

  4. 接收连接器中,用鼠标右键单击,然后单击新建接收连接器

  5. 名称框中键入一个名称。

  6. 选择此接收连接器的预期的用法列表中,单击内部,,然后单击下一步

  7. 远程网络设置部分中,单击添加,然后键入 Microsoft Dynamics CRM 服务器的 IP 地址。


    注意:如果您看到的值 0.0.0.0-255.255.255.255,请单击删除

  8. 单击下一步,单击新建,然后单击完成

配置匿名用户连接器
  1. 右键单击 Exchange 的接收连接器创建,并单击属性

  2. 单击权限组选项卡。

  3. 请确保指定可以连接到接收连接器选项设置为匿名用户,单击应用,然后单击确定

配置的接收连接器的协议权限

注意:您必须具有 Windows 支持工具安装来完成这些步骤。只有经验丰富的管理员应该使用 Adsiedit.msc 工具。

  1. 启动 Adsiedit.msc 工具。

  2. 展开配置,展开服务、 展开Microsoft Exchange,展开CN = 第一个组织,展开管理组,展开Exchange 管理组,展开服务器,展开协议,,然后展开SMTP 接收连接器

  3. 右键单击 Exchange 的接收连接器创建,并单击属性

  4. 单击安全选项卡。

  5. 单击匿名登录

  6. 单击此处,选择将消息提交到任何收件人接受 ' 具有权威性的域发件人复选框,单击应用,然后单击确定

重新启动 Exchange 服务器的 Microsoft Exchange 传输服务
  1. 单击开始,单击运行,键入services.msc,然后单击确定

  2. 右键单击Microsoft Exchange 传输服务,然后单击重新启动

参考资料

有关如何传入和传出的电子邮件问题进行疑难解答的详细信息,请访问下面的 Microsoft TechNet 网站︰

http://technet.microsoft.com/en-us/library/gg583996.aspx有关如何允许应用程序服务器来中继关闭 Exchange Server 2007年的详细信息,请访问下面的 Microsoft 网站︰

http://msexchangeteam.com/archive/2006/12/28/432013.aspx

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

你对翻译质量的满意程度如何?

哪些因素影响了你的体验?

是否还有其他反馈?(可选)

谢谢您的反馈意见!

×