收件者不會收到 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
事件類別:無
事件標識碼:0
日期: 日期
時間: 時間
使用者:無
計算機: ComputerName
描述:#61042 - 處理 SMTP 主題為“test 3 today CRM:0001011” 的外寄電子郵件訊息時發生錯誤: https://adsrv:81/MS1 透過 adsrv 傳遞。 System.Net.Mail.SmtpException:傳送郵件失敗。 >--- System.Net.WebException:無法連線到遠端伺服器--->
System.Net.Sockets.SocketException:無法進行連線,因為目標計算機主動拒絕連線
在 System.Net.Sockets.Socket.DoConnect (EndPoint endPointSnapshot,SocketAddress socketAddress)
在 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, Int32 timeout, Exception& exception)
---內部例外狀況堆疊追蹤---
在 System.Net.ServicePoint.GetConnection (PooledStream PooledStream, Object owner, Boolean async, IPAddress& address, Socket& abortSocket, Socket& abortSocket6, Int32 timeout)
at System.Net.PooledStream.Activate (Object owningObject, Boolean async, Int32 timeout, GeneralAsyncDelegate asyncCallback)
在 System.Net.PooledStream.Activate (Object owningObject, GeneralAsyncDelegate asyncCallback)
at System.Net.ConnectionPool.GetConnection (Object owningObject, GeneralAsyncDelegate asyncCallback, Int32 creationTimeout)
在 System.Net.Mail.SmtpConnection.GetConnection (String 主機,Int32 埠)
在 System.Net.Mail.SmtpTransport.GetConnection (String 主機,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 ()

如需詳細資訊,請參閱 位於 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) Manager]
  2. 在 Internet Information Services (IIS) Manager 中,展開 [預設 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 Server。

  7. 如果您對 [聯機控制] 設定進行了任何變更,請重新啟動 SMTP 服務。 如果要執行這項操作,請依照下列步驟執行:

    1. 取 [開始],指向 [ 程式],指向 [ 系統管理工具],然後選取 [ 服務]
    2. 以滑鼠右鍵按兩下 [ 簡易郵件傳輸通訊協定 (SMTP) ],然後選取 [ 重新啟動]

Exchange Server 2007

如果您使用 Microsoft Exchange Server 2007,則必須建立新的 Exchange 接收連接器、為匿名使用者設定連接器、設定接收連接器的通訊協定許可權,然後在 Exchange Server 上重新啟動 Microsoft Exchange Transport Service。

建立 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 Transport Service
  1. 取 [開始],選取 [ 執行],輸入 services.msc,然後選取 [ 確定]
  2. 以滑鼠右鍵按兩下 [Microsoft Exchange Transport Service],然後選取 [ 重新啟動]