我正在使用名为:MailKit 的 IMAP4 客户端。
效果很好,但我不知道邮件是否有附件。
我试过:
var summary = inbox.Fetch(MessageId,MessageSummaryItems.Body,cancel.Token).FirstOrDefault();
var bodyMultiPart = summary.Body as BodyPartMultipart;
if (bodyMultiPart != null)
{
foreach (var bodyPart in bodyMultiPart.BodyParts.Where(x => x is BodyPartBasic))
{
BodyPartBasic basicPart = bodyPart as BodyPartBasic;
if (basicPart.ContentDisposition != null && basicPart.ContentDisposition.IsAttachment)
{
//add basic part as attachment
}
}
}
但对于某些消息(例如:以 PDF 作为附件的消息),内容处置为 null。
最佳答案
尝试使用 MessageSummaryItems.BodyStructure 而不是 MessageSummaryItems.Body。
BODYSTRUCTURE 比 BODY 检索每个 body 部位的更多详细信息。我认为 Content-Disposition header 是 BODYSTRUCTURE 通过普通 BODY 检索的额外内容之一。
希望对您有所帮助。
关于c# - 如何检查邮件是否有附件(MailKit),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23214514/