IMAP主体命令.如何获得正文的文本或html部分
本文关键字:文本 html 部分 正文 主体 命令 何获得 IMAP | 更新日期: 2023-09-27 18:10:24
我有一个关于FETCH的查询…]命令。
获取正文的文本或html部分的最佳方法是什么?我认为BODY[TEXT]命令可以做到这一点,但它也会返回附件等,这严重影响了性能。
目前,我是这样做的(c#代码):
if (contentType != null)
{
switch (contentType.ToLower())
{
case "multipart/alternative":
case "text/plain":
case "text/html":
body = " BODY[1]";
break;
case "multipart/related":
case "multipart/signed":
body = " BODY[1.1]";
break;
case "multipart/report":
body = " BODY[1]";
break;
case "multipart/mixed":
if (mail.MailBody.TextBodyPartCount == 1)
body = " BODY[1]";
else if (mail.MailBody.TextBodyPartCount == 2)
{
if (bodyType == BodyType.Plain)
body = " BODY[1.1]";
else
body = " BODY[1.2]";
}
else
body = " BODY[1]";
break;
default:
body = " BODY[1]";
break;
}
}
else
{
body = " BODY[1]";
}
这在大多数情况下都有效,但在某些情况下它返回NIL。如果我遗漏了一些细节,很抱歉,但请一定要问!
谢谢。
电子邮件以MIME格式存储-它允许创建具有无限深度的树状结构。您不能仅通过检查内容类型来假设这个树结构是什么样的。
您应该使用BODYSTRUCTURE在不下载消息的情况下重新创建树结构,然后您可以决定需要获取哪些部分。