收件人不会收到Microsoft Dynamics CRM用户使用 Microsoft Dynamics CRM Web 客户端发送的电子邮件

本文解决了收件人无法接收从 Microsoft Dynamics CRM Web 客户端发送的电子邮件的问题。

适用范围:Microsoft Dynamics CRM 2011
原始 KB 编号: 915827

症状

当Microsoft Dynamics CRM用户使用 Microsoft Dynamics CRM 2011 Web 客户端发送电子邮件时,电子邮件将发送或排队。 但是,如果用户发送电子邮件时出现问题,用户会在电子邮件活动中收到以下错误消息之一。

错误消息 1

此邮件尚未提交以供传递。 到目前为止,已经进行了1次尝试。

错误消息 2

消息传递失败。 必须重新提交它才能进行任何进一步处理。

此外,在 MSCRMEmailLog 事件日志中收到类似于以下内容的错误消息:

事件类型:错误
事件源:MSCRMEmailLog
事件类别:无
事件 ID:0
日期: 日期
时间: 时间
用户: N/A
计算机: ComputerName
说明:#61042 - 处理主题为“今天测试 3 今日 CRM:0001011”的 SMTP: https://adsrv:81/MS1 通过 adsrv 传递的传出电子邮件时出错。 System.Net.Mail.SmtpException:发送邮件失败。 >--- System.Net.WebException:无法连接到远程服务器--->
System.Net.Sockets.SocketException:无法建立连接,因为目标计算机主动拒绝连接
at System.Net.Sockets.Socket.DoConnect (EndPoint endPointSnapshot、SocketAddress socketAddress)
at System.Net.Sockets.Socket.InternalConnect (EndPoint remoteEP)
at System.Net.ServicePoint.ConnectSocketInternal (Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult asyncResult, Int32 timeout, Exception& exception)
---内部异常堆栈跟踪---结束
at System.Net.ServicePoint.GetConnection (PooledStream、对象所有者、布尔异步、IPAddress& 地址、套接字& abortSocket、Socket& abortSocket6、Int32 超时)
at System.Net.PooledStream.Activate (Object owningObject、Boolean async、Int32 timeout、GeneralAsyncDelegate asyncCallback)
at System.Net.PooledStream.Activate (Object owningObject、GeneralAsyncDelegate asyncCallback)
at System.Net.ConnectionPool.GetConnection (Object owningObject、GeneralAsyncDelegate asyncCallback、Int32 creationTimeout)
at System.Net.Mail.SmtpConnection.GetConnection (String host,Int32 port)
at System.Net.Mail.SmtpTransport.GetConnection (String 主机,Int32 端口)
at System.Net.Mail.SmtpClient.GetConnection ()
at System.Net.Mail.SmtpClient.Send (MailMessage 邮件)
---内部异常堆栈跟踪---结束
at System.Net.Mail.SmtpClient.Send (MailMessage 邮件)
at Microsoft.Crm.Tools。Email。Providers.SmtpPollingSendEmailProvider.SendMessage (MailMessage mailMessage)
at Microsoft.Crm.Tools。Email。Providers.SmtpPollingSendEmailProvider.ProcessMessageInternal (emailMessage)
at Microsoft.Crm.Tools。Email。Providers.CrmPollingSendEmailProvider.ProcessMessage (emailMessage)
at Microsoft.Crm.Tools。Email。Providers.CrmPollingSendEmailProvider.Run ()

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

原因

Microsoft Dynamics CRM依赖于本地 SMTP 服务器将电子邮件转发到 Exchange 服务器。 此问题是由下列原因之一导致的:

  • Microsoft Dynamics CRM服务器上的 SMTP 配置未配置为将电子邮件转发到 Exchange 服务器。
  • Exchange 服务器未配置为允许来自Microsoft Dynamics CRM服务器的中继消息。

解决方案

要解决此问题,请按照下列步骤操作:

步骤 1 - 在Microsoft Dynamics CRM服务器上配置 SMTP 以将电子邮件转发到 Exchange 服务器

  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,必须先配置中继限制,然后验证Connections控制。

配置中继限制
  1. 选择“ 开始”,指向 “程序”,指向 “Microsoft Exchange”,然后选择“ 系统管理器”。

  2. 选择 “服务器”,选择 Exchange 服务器的名称,选择“ 协议”,然后选择“ SMTP”。

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

  4. “中继限制 ”区域中,选择“ 中继”。

  5. 验证是否选择了“仅下面的列表”选项,然后将Microsoft Dynamics CRM服务器添加到列表中。

    如果使用 Microsoft Dynamics CRM 2011,请确保将安装了 Exchange 路由器的服务器添加到列表中。

  6. 重启 SMTP 服务。 为此,请按照下列步骤操作:

    1. 选择 “开始”,指向 “程序”,指向 “管理工具”,然后选择“ 服务”。
    2. 右键单击“ 简单邮件传输协议 (SMTP) ”,然后选择“ 重启”。
验证Connections控件
  1. 选择“ 开始”,指向 “程序”,指向 “Microsoft Exchange”,然后选择“ 系统管理器”。

  2. 选择 “服务器”,选择 Exchange 服务器的名称,选择“ 协议”,然后选择“ SMTP”。

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

  4. “Connections控制”区域中,选择“连接”。

  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 接收连接器,为匿名用户配置连接器,为接收连接器配置协议权限,然后在 Exchange 服务器上重启 Microsoft Exchange 传输服务。

创建 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= First Organization”、“ 管理组”、“ Exchange 管理组”、“ 服务器”、“ 协议”和 “SMTP 接收连接器”。
  3. 右键单击创建的 Exchange 接收连接器,然后选择 “属性”。
  4. 单击“安全性”选项卡。
  5. 选择“ 匿名登录”。
  6. 选中“将邮件提交给任何收件人检查”框和“接受权威域发件人检查”框,选择“应用”,然后选择“确定”。
在 Exchange 服务器上重启 Microsoft Exchange 传输服务
  1. 依次选择“ 开始”、“ 运行”、“ services.msc”和“ 确定”。
  2. 右键单击“ Microsoft Exchange 传输服务”,然后选择“ 重启”。