[英]How to check if message has attachments (MailKit)
我正在使用名為: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作為附件的消息),內容處置為空 。
嘗試使用MessageSummaryItems.BodyStructure而不是MessageSummaryItems.Body。
BODYSTRUCTURE檢索每個身體部位的更多細節,而不是BODY。 我認為Content-Disposition標頭是BODYSTRUCTURE在普通BODY上檢索的額外內容之一。
希望有所幫助。
當內容處置為空時,您可以使用內容類型作為提示:text / *很少是附件,multipart / *不是提示,其他類型通常暗示附件。
PDF是application / pdf,所以這是根據這種啟發式的附件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.