在BT2006R2我有接收XML與電子郵件的屬性,如業務流程:到,抄送,主題,filelocation爲htmlbody,1..1 filelocations PDF文件發送HTML郵件在BizTalk與SMTP適配器多個PDF附件
我希望編排發送1封電子郵件與SMTP適配器與HTML emailbody和1..n pdf文件作爲附件。
這怎麼辦?
在BT2006R2我有接收XML與電子郵件的屬性,如業務流程:到,抄送,主題,filelocation爲htmlbody,1..1 filelocations PDF文件發送HTML郵件在BizTalk與SMTP適配器多個PDF附件
我希望編排發送1封電子郵件與SMTP適配器與HTML emailbody和1..n pdf文件作爲附件。
這怎麼辦?
你真的在這裏問三個單獨的問題。
我解決每個以下 - 最簡單的解決方案實際上避免了不得不解決的問題3.
希望這將讓你在正確的軌道解決這個上發出2。可悲的是,它太廣泛了,我不能給出一個「這就是你怎麼做的答案」,但如果你遇到困難,回來併發布更多的問題。
如何發送HTML郵件在BizTalk
有兩種方法,我知道要實現這一點。
一個是使用RawString類,並將其直接分配給您的電子郵件正文。這在blog post by Tomas Restropo中得到了很好的證明。
第二種方法是使用XSLT Transform Pipeline組件詳細的here on MSDN。這可以讓你指定XSLT模板,它將把簡單的測試消息體轉換成HTML體。
我在過去曾使用這兩種方法。每個人都有自己的長處和短處。模板方法的一個很好的功能是它稍微有更多的運行時可配置性(但只有稍微設計好其他方式)。
如何添加附件在BizTalk
電子郵件同樣,也有在BizTalk實現這一目標的兩種主要方法。
第一種方法是使用SMTP.Attachments
上下文屬性。在消息賦值表達式形狀內你的業務流程有一個像下面的代碼:
MessageOut(SMTP.Attachments) =
"C:\\Attachments\MyFile.pdf|C:\\Attachments\AnotherFile.pdf";
只需添加文件,該文件路徑是管道分隔的列表。
這可能是您的要求的一個很好的匹配 - 它是動態添加附件到電子郵件的最簡單的方法,並避免需要實際加載文件到BizTalk。
此外,上述表達式形狀只是代碼,因此您可以根據需要將上述表達式設置爲動態。
另一種方法是從BizTalk發送多部分消息。根據上下文設置,您可以將所有消息部分作爲附件發送,或者使用第一部分作爲消息正文。
創建多部分消息有一點涉及,所以我不會涉及它 - 通常您需要一個助手類,它可以爲消息添加部分內容。
上下文屬性(在消息分配形狀集)是:
MessageOut(SMTP.MessagePartsAttachments) = n
// Where n can be one of three values
0 (same as not set) - Do not attach any biztalk message parts. This is a default setting.
1 - Attach only biztalk body part
2 - Attach all parts
如何在文件中動態讀取到BizTalk過程
這又是相當複雜,所以我不會深入細節。還有其他的SO問題可以解決這個問題。
本質上,如果您使用多部分消息,您需要以某種方式將每個消息部分放入BizTalk。
您有幾種選擇:
大衛嗨,你在這裏做了一些功課;-)非常感謝。我已經在互聯網上做了一些更多的閱讀,現在我有一個很好的工作解決方案,通過使用html正文的rawstring並動態地添加一個輔助類(作爲部分)的附件。 –
@帕特里克很高興聽到你有這個工作。 BT中的一些「簡單」事情就像發送帶有附件的格式良好的電子郵件一樣很難實現 - 這幾乎就像基本工具不斷受到高級功能的影響。 –
我意識到這是舊的,但是當我昨天整天搜索一個類似的問題時,這篇文章不斷出現。我試圖將PDF附加到電子郵件中,並且從未獲得pdf。我不得不改變發送管道'傳遞通過傳輸'http://stackoverflow.com/questions/31550160/add-pdf-attachment-to-biztalk-email-service – Ju66ernaut