我正在尝试通过BizTalk SMTP发送端口发送消息。具体来说,我通过业务流程的“指定后期”端口发送消息。我的目标是将邮件正文附加到已发送的电子邮件中,其中包含我选择的附件文件名。
但是,无论我尝试什么,附件名称仍为“body.csv”
我试过了:
MIME.FileName
的多部分消息。MIME.FileName
(非身体部分正确地具有附件名称,身体部分没有)。MIME.FileName
。我已尝试使用“仅附加身体部位”和“附加所有部分”的SMTP适配器上的所有配置,但都没有。
目前,我为电子邮件内容提供了“仅附加正文部分”和一些固定文本(在发送端口上配置)。
我已经读过一些人在过去的BizTalk版本中使用过MIME编码器管道,但显然这对于SMTP适配器来说是不必要的。其他人使用自定义管道组件设置MIME.FileName
这是我正在前进的地方,但如果我的业务流程中已设置MIME.FileName
,则似乎没有必要。
对于这个相对简单的问题,我是否遗漏了一些基本的东西?
答案 0 :(得分:3)
您可以在消息分配形状内的业务流程中执行此操作。使用multipart,消息将如下所示:
Message.part(MIME.FileName) = "your file.name";
答案 1 :(得分:2)
第二个假设工作。 尝试从帮助程序使用此代码(适用于我):
public static void SetFileName(string emailMessage,XLANGMessage message)
{
Byte[] b = GetBytes(emailMessage);
MemoryStream stream = new MemoryStream(b);
IStreamFactory factory = new BinaryStreamFactory(stream);
string partName = FileName + "." + FileType;
message.AddPart(factory, partName);
XLANGPart part = message[partName];
part.SetPartProperty(typeof(MIME.FileName), partName);
}
static byte[] GetBytes(string str)
{
byte[] bytes = new byte[str.Length * sizeof(char)];
System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
return bytes;
}