如何:建立路線以使用 LDAP 查詢將訊息動態路由至電子郵件地址
目標
本節示範如何建立路線,以透過LDAP (輕量型目錄存取通訊協定) 查詢電子郵件地址,然後使用 BizTalk Server SMTP 配接器將電子郵件訊息傳送至已解析的端點。
在此操作說明主題中,您將完成下列步驟:
建立路線傳閱名單,以使用LDAP查詢動態路由訊息。
使用路線測試用戶端範例應用程式來測試路線。
必要條件
本操作說明主題中的程式需要完成 開發活動的必要條件。
您將完成本節的計算機必須設定並執行 Microsoft Active Directory 目錄服務, (計算機不是域控制器,但必須連線到網域) 。 此外,必須設定並執行 SMTP 伺服器;若要測試此操作說明主題的結果,您必須有用戶端,以檢查 ESB 所傳送的電子郵件。
本節中的指示假設名為 Global Bank 的組織,其網域為 globalbank.com,且 Active Directory 組織單位名為 Employees,其中包含名為 JohnEvans 且其 (配置檔中具有有效電子郵件地址的使用者,例如 johne@globalbank.com) 。 不需要復寫這些環境因素;不過,為了在您的環境中重新建立此實作,請考慮這些因素,並視需要進行替代。
步驟
建立ESB路線網域特定語言 (DSL) 模型
在 Visual Studio 中,開啟 C:\HowTos\Patterns\Patterns.sln。
在 方案總管 中,以滑鼠右鍵按兩下 [行程][連結庫] 專案,指向 [新增],然後按兩下 [新增路線]。
在 [新增專案] 對話框中,於 [名稱] 方塊中輸入LdapResolution,然後按兩下 [新增]。
設定路線的屬性
在 Visual Studio 中,按兩下 LdapResolution.itinerary 的設計介面。 在 LdapResolution 屬性視窗 中,設定下列屬性:
在 [ 模型導出工具 ] 下拉式清單中,按兩下 [XML 路線匯出工具]。
在 [擴充功能設定 ] 區段的 [路線 XML 檔案 ] 屬性旁,按下省略號按鈕 (...) 。
在 [選取 XML 檔案] 對話框中,於 [檔名] 方塊中輸入 C:\HowTos\Itineraries\LdapResolution,然後按兩下 [儲存]。
注意
此步驟可讓您將路線匯出為 XML 到本機檔案位置。 藉由將路線導出至本機檔案位置,而不是前往路線資料庫,即可使用 ESB 測試用戶端應用程式來測試路線。 您稍後將會在本操作說明主題中完成此程式。
定義路線的結構
從 [工具箱] 中,將 On-Ramp 模型專案拖曳至設計介面。 在 OnRamp1 屬性視窗 中,設定下列屬性:
按兩下 [ 名稱 ] 屬性,然後輸入 ReceiveNAOrder。
在 [ 擴充器] 下拉式清單中,按兩下 [On-Ramp ESB Extender]。
在 [BizTalk 應用程式 ] 下拉式清單中,按兩下 [Microsoft.Practices.ESB]。
在 [ 接收埠 ] 下拉式清單中,按兩下 [OnRamp.Itinerary]。
從 [工具箱] 中,將 [路線服務 ] 模型專案拖曳至設計介面,然後將它放在 On-Ramp 模型元素的右邊。 在 ItineraryService1 屬性視窗 中,設定下列屬性:
按兩下 [ 名稱] 屬性,然後輸入 RouteMessageEmail。
在 [ 路線服務擴充項 ] 下拉式清單中,按兩下 [ 傳訊擴充器]。
注意
此屬性會定義在管線 (傳訊) 中進行進程。 或者,如果流程將在協調流程中發生,請將 [路線服務擴充項 ] 屬性設定為 Orchestration Extender。
在 [ 容器 ] 下拉式清單中,展開 [ReceiveNAOrder],然後按兩下 [ 接收處理程式]。
在 [ 服務名稱 ] 下拉式清單中,按兩下 [Microsoft.Practices.ESB.Services.Routing]。
以滑鼠右鍵按下 RouteMessageEmail 模型專案的 Resolver 集合,然後按兩下 [新增解析程式]。 在 Resolver1 屬性視窗 中,設定下列屬性:
按兩下 [ 名稱] 屬性,然後輸入 LdapResolver。
在 [ 解析程序實 作] 下拉式清單中,按兩下 [LDAP 解析程式擴充功能]。
在 [ 傳輸名稱] 下拉式清單中,按兩下 [ SMTP]。
按兩下 [傳輸位置] 屬性,然後輸入 {mail}
按兩下 SearchRoot 屬性,然後輸入 ou=Employees,dc=globalbank,dc=com
注意
如果您尚未根據一節中的規格來設定環境,請將上述屬性中的值取代為您環境適用的值。
按下 Filter 屬性,然後將值變更為 (& (objectClass=User) (| (givenName=john) ) )
注意
輸入上述值來取代現有的文字。
在 ThrowErrorIfNotFound 下拉式清單中,按兩下 [True]。
在 屬性視窗 中,按兩下 [端點組態] 屬性,然後按下省略號按鈕 (...) 。
在 [ 端點組態 ] 對話框中,按兩下 EmailBodyText 屬性,然後輸入 Order 即可進行處理。
點選 「 From ] 屬性,然後輸入 orders@globalbank.com。
按兩下 MessagePartsAttachment 屬性,然後輸入 2。
按兩下 [Subject] 屬性,然後 輸入 {givenName} 的 Order。
使用本機環境的連線資訊,設定 SMTPAuthentication、SMTPHost、UserName 和 Password 屬性。
按兩下 [確定 ] 關閉 [ 端點組態 ] 對話框。
以滑鼠右鍵按兩下 LdapResolver 解析程式,然後按兩下 [ 測試解析程式組態]。
在 [輸出] 視窗中,確認已解析 端點組態 值中的主旨為 Order for John,然後確認已解析的 傳輸位置 是 Active (Directory 中使用者帳戶相關聯的電子郵件位址, johne@globalbank.com 例如,) 。
在 [工具箱] 中,按兩下 [連接器]。 將 連線從 ReceiveNAOrder 模型專案拖曳至 RouteMessageEmail 模型專案。
從 [工具箱] 中,將 Off-Ramp 模型元素拖曳至設計介面,然後將它放在 RouteMessageEmail 模型元素的右邊。 在 OffRamp1 屬性視窗 中,設定下列屬性:
按兩下 [ 名稱] 屬性,然後輸入 EmailNAOrderDoc。
在 [ 擴充器] 下拉式清單中,按兩下 [關閉坡形 ESB 擴充器]。
在 [BizTalk 應用程式 ] 下拉式清單中,按兩下 [GlobalBank.ESB]。
在 [ 傳送埠 ] 下拉式清單中,按兩下 [DynamicResolutionOneWay]。
從 [工具箱] 中,將 [路線服務 ] 模型元素拖曳至設計介面,然後將它放在 RouteMessageEmail 模型元素與 EmailNAOrderDoc 模型元素之間。 在 ItineraryService1 屬性視窗 中,設定下列屬性:
按兩下 [ 名稱] 屬性,然後輸入 SendPortFilter。
在 [ 路線服務擴充項 ] 下拉式清單中,按兩下 [關閉坡形擴充器]。
在 [關閉坡形] 下拉式清單中,展開 [EmailNAOrderDoc],然後按兩下 [ 傳送處理程式]。
在 [工具箱] 中,按兩下 [連接器]。 將 連線從 RouteMessageEmail 模型專案拖曳至 SendPortFilter 模型專案。
在 [工具箱] 中,按兩下 [連接器]。 將 連線從 SendPortFilter 模型專案拖曳至 EmailNAOrderDoc 模型專案。
匯出模型以搭配路線測試用戶端使用
在 Visual Studio 中,以滑鼠右鍵按兩下 LdapResolution 路線的設計介面,然後按兩下 [ 導出模型]。
注意
路線的 XML 版本會在 Visual Studio 中開啟。
儲存所有專案成品。
在 Windows 檔案總管中,流覽至 C:\HowTos\行程,並注意建立路線 XML (LdapResolution.xml) 。
測試路線
使用開發 活動 必要條件 (C:\HowTos\ESB.Itinerary.Test.exe - 快捷方式) 期間建立的快捷方式,開啟路線測試用戶端應用程式範例應用程式。
在 [路線測試用戶端] 中,清除 [ 使用 WCF 服務 ] 複選框,然後按兩下 [ 載入路線]。
在 [ 開啟路線檔案 ] 對話框中,流覽至 C:\HowTos\行程。 選取 [LdapResolution.xml],然後按兩下 [ 開啟 ] 以載入路線。
按兩下 [確定 ] 以清除 [成功載入路線 ] 訊息。
在 [路線測試用戶端] 中,按兩下 [ 載入消息 ] 方塊旁的省略號按鈕 (...) 。
在 [ 選取要載入的 XML 檔 ] 對話框中,流覽至 C:\HowTos。 選取 [NAOrderDoc.xml],然後按兩下 [ 開啟 ] 以載入測試訊息。
按兩下 [ 提交要求] 按鈕。 測試完成時,按兩下 [ 確定 ] 以關閉出現的確認。
開啟 Microsoft Outlook Express (或您選擇的郵件用戶端) ,並確認郵件傳遞至 JohnEvans 的電子郵件。
其他資源
如需詳細資訊,請參閱下列相關主題: