我已经获得了一个ASP.NET MVC网站的所有权,该网站利用Biztalk 2013来处理发送电子邮件等任务。我对biztalk完全是新手,所以在这篇文章中原谅明显的错误。
快速概述
通过应用程序调用服务,然后业务流程调用sql db中的存储过程来填充电子邮件的某些值(包括电子邮件的html),然后将电子邮件发送出去。
我现在想在电子邮件中添加pdf附件。
作为测试,我将pdf文件添加到服务器,然后我尝试将ActualEmailMsg(SMTP.Attachments) = "C:\\PDFs\\test.pdf";
ActualEmailMsg(SMTP.MessagePartsAttachments) = 2;
添加到this post中建议的消息分配表达式形状,但无效。 (我也尝试了只有1“\”的物理路径,如“C:\\ PDFs \ test.pdf”,但是没有用)
我已经排除了服务帐户对PDF文件夹缺少权限的可能性。电子邮件发送正确但没有附件。我在服务器上的代码或事件查看器中没有出现任何错误,所以在这一点上我可能会感到茫然。
答案 0 :(得分:1)
经过大量谷歌搜索后,我发现问题与发送管道相关。 This thread让我走上正轨。
在应用程序的BizTalk管理控制台的发送端口部分,发送管道使用我相信是由前一个所有者制作的自定义管道。 我在下拉列表中将其更改为“Pass Thru Transmit”类型,现在正在运行。
答案 1 :(得分:0)
我使用以下模式发送电子邮件。我不确定,但您可能需要在电子邮件中使用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";