C# Microsoft.BizTalk.Component.MIMEException
Biztalk中的POP3适配器有问题。在我的接收位置设置后,一些邮件会抛出你在标题中看到的MIMEExceptionC# Microsoft.BizTalk.Component.MIMEException,c#,biztalk,mime,pop3,C#,Biztalk,Mime,Pop3,Biztalk中的POP3适配器有问题。在我的接收位置设置后,一些邮件会抛出你在标题中看到的MIMEException 该电子邮件仅包含一些附件。以下是一篇博客文章,阐述了同一问题及其解决方案。希望这个解决方案对你有用 获取电子邮件文本,该文本应包含附件、电子邮件正文和一些属性。验证此电子邮件,有许多MIME验证网站可用 它将给出失败的MIME消息的行号结果。通常有些行太长,有时超过998个字符 示例长线是安装在邮件服务器上的反垃圾邮件软件的诊断结果 您可以添加自定义管道解码器组件来格式化这些长
该电子邮件仅包含一些附件。以下是一篇博客文章,阐述了同一问题及其解决方案。希望这个解决方案对你有用 获取电子邮件文本,该文本应包含附件、电子邮件正文和一些属性。验证此电子邮件,有许多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;
}
您正在使用哪个BizTalk版本?您是否尝试过此修补程序:不要复制粘贴解决方案链接。随着时间的推移,链接可能会出错。我正在处理2013版,是的,我安装了它,但有相同的例外我们可以得到例外消息的其余部分吗?这可能会让我们了解问题的更多细节。适配器“POP3”在接收位置“ReceivePop”上接收到的URI为“POP3://”的消息被挂起。错误详细信息:引发了类型为“Microsoft.BizTalk.Component.MIMEException”的异常。MessageId:{CC524C02-8064-4BAB-97A2-B02F51EDEB2A}实例ID:{DA33C96B-83D8-4DC8-9C4D-5BF534DFB20A}