在BT2006R2中,我有一个编排,它接收带有电子邮件属性的XML,例如:to,cc,subject,htmlbody的文件位置,带有pdf文件的1..n文件位置
我希望业务流程使用带有HTML电子邮件主体和1..n pdf文件作为附件的SMTP适配器发送1封电子邮件.
如何才能做到这一点 ?
你真的在这里问三个单独的问题.
我在下面解决每个问题 - 问题2的最简单解决方案实际上避免了必须处理问题3.
希望这会让你走上正确的道路来解决这个问题.可悲的是,它是如此广泛,以至于我不能给出一个"这就是你如何回答",但如果你遇到障碍,请回来发布更多问题.
如何在BizTalk中发送HTML电子邮件
我知道有两种方法可以实现这一目标.
一种是使用RawString类并将其直接分配给您的电子邮件正文.在Tomas Restropo的博客文章中充分展示了这一点.
第二种方法是使用MSDN上详述的XSLT转换管道组件.这可以通过允许您指定将简单测试消息正文转换为HTML正文的XSLT模板来实现.
我过去曾使用过这两种方法.每个都有自己的优点和缺点.模板方法的一个很好的特性是它可以稍微更多地配置运行时(但是如果你设计另一种方式,那只会略微).
如何在BizTalk中向电子邮件添加附件
同样,在BizTalk中实现此目的有两种主要方法.
第一种方法是使用SMTP.Attachments
context属性.在您的业务流程中的消息分配表达式形状中,您有以下代码:
MessageOut(SMTP.Attachments) =
"C:\\Attachments\MyFile.pdf|C:\\Attachments\AnotherFile.pdf";
Run Code Online (Sandbox Code Playgroud)
您只需添加一个文件列表,其中文件路径是管道分隔的.
这可以很好地满足您的要求 - 这是动态添加附件到电子邮件的最简单方法,并且避免需要将文件实际加载到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
Run Code Online (Sandbox Code Playgroud)
如何动态读取文件到BizTalk进程
这又是非常复杂的,所以我不会详细介绍.还有其他SO问题可以解决这个问题.
基本上,如果您使用多部分消息,则需要以某种方式将每个消息部分放入BizTalk中.
你有几个选择:
归档时间: |
|
查看次数: |
8209 次 |
最近记录: |