Microsoft.BizTalk.Component.MIMEException
本文关键字:MIMEException Component BizTalk Microsoft | 更新日期: 2023-09-27 17:57:39
Biztalk中的POP3适配器有问题。在我的接收位置设置后,一些邮件会抛出MIMEException,你可以在标题中看到。
该电子邮件仅包含一些附件。
这里有一篇博客文章,阐述了同样的问题及其解决方案。希望这个解决方案对你有用。"无法解码S/MIME消息。S/MIME消息可能无效。"当使用POP适配器处理传入电子邮件时,
获取电子邮件文本,其中应包含附件、电子邮件正文和一些属性。验证此电子邮件,有很多MIME验证网站可用。
它将为您提供失败的MIME消息的行号的结果。通常有些行太长,有时超过998
个字符。
示例长行是安装在邮件服务器上的反垃圾邮件软件的诊断。
您可以添加自定义管道解码器组件来格式化这些长行,并添加SMIME/MIME解码器组件。确保复制pop3上下文属性,以备不时之需。
以下是一些关于如何破坏MIME消息的代码片段
public IBaseMessage Execute(IPipelineContext pContext, IBaseMessage pInMsg)
{
System.IO.Stream st = pInMsg.BodyPart.GetOriginalDataStream();
System.IO.StreamReader reader = new System.IO.StreamReader(st);
var strBuilder = new StringBuilder();
string str = string.Empty;
while (reader.Peek() >= 0)
{
str = reader.ReadLine();
if (str.Length >= 998)
str = str.Replace(str.ToString(), System.Text.RegularExpressions.Regex.Replace(str.ToString(), "(.{" + 998 + "})", "$1" + Environment.NewLine));
strBuilder.AppendLine(str);
}
System.IO.MemoryStream m = new System.IO.MemoryStream();
System.IO.StreamWriter writer = new System.IO.StreamWriter(m);
writer.AutoFlush = true;
writer.Write(strBuilder.ToString());
m.Position = 0;
pInMsg.BodyPart.Data = m;
reader.Close();
return pInMsg;
}