将 PDF 附件添加到 BizTalk 电子邮件服务

Add PDF attachment to BizTalk email service

我拥有一个 ASP.NET MVC 站点,该站点利用 Biztalk 2013 来处理发送电子邮件等任务。我是 biztalk 的新手,所以请原谅 post 中的明显错误。


快速概览

通过应用程序调用服务,然后编排调用 sql 数据库中的存储过程来填充电子邮件的一些值(包括电子邮件的 html),然后发送邮件出来了。

我现在想在电子邮件中添加 pdf 附件。

作为测试,我向服务器添加了一个 pdf 文件,然后尝试按照 this post 中的建议将 ActualEmailMsg(SMTP.Attachments) = "C:\PDFs\test.pdf"; ActualEmailMsg(SMTP.MessagePartsAttachments) = 2; 添加到消息分配表达式形状,但无济于事。 (我也尝试过只有 1 个“\”的物理路径,比如 "C:\PDFs\test.pdf",但没有用

我已经排除了服务账户对PDF文件夹权限不足的可能。电子邮件发送正确但不存在附件。我在服务器上的代码或事件查看器中没有收到任何错误,所以此时我不知道它可能是什么。

我使用以下模式发送电子邮件。我不确定,但也许您需要为电子邮件中的消息使用 ActualEmailMsg(MIME.FileName) 属性。

ActualEmailMsg(MIME.FileName) ="Report_{"+FullFileName+"}.xml";
ActualEmailMsg(SMTP.CC)=ReportNotificationEmailAddress;
ActualEmailMsg(SMTP.Subject)="Report Notification Email";
ActualEmailMsg(SMTP.EmailBodyFile)=@"C:\...\ReportNotificationBody.htm";
ActualEmailMsg(SMTP.Attachments)=@"C:\..\ReportNotificationBody.png”;
ActualEmailMsg (SMTP.EmailBodyTextCharset)="UTF-8";

经过大量谷歌搜索后,我发现问题与发送管道有关。 This thread 让我走上了正确的轨道。

在应用程序的 BizTalk 管理控制台的发送端口部分,发送管道使用的是自定义管道,我相信是由以前的所有者创建的。 我在下拉列表中将其更改为 'Pass Thru Transmit' 类型,现在可以使用了。