C# 使用mailkit检查附件大小
我正在下载具有以下代码的给定mailid的附件:C# 使用mailkit检查附件大小,c#,size,imap,attachment,mailkit,C#,Size,Imap,Attachment,Mailkit,我正在下载具有以下代码的给定mailid的附件: HeaderSearchQuery searchCondition = SearchQuery.HeaderContains("Message-Id", ssMailItemId); var folder = client.GetFolder(ssFolderName); folder.Open(FolderAccess.ReadOnly); IL
HeaderSearchQuery searchCondition = SearchQuery.HeaderContains("Message-Id", ssMailItemId);
var folder = client.GetFolder(ssFolderName);
folder.Open(FolderAccess.ReadOnly);
IList<UniqueId> ids = folder.Search(searchCondition);
foreach (UniqueId uniqueId in ids)
{
MimeMessage message = folder.GetMessage(uniqueId);
foreach (MimeEntity attachment in message.Attachments)
{
ssAttachmentsDetail.Append(fillAttachmentDetailRecord(attachment, uniqueId.Id.ToString()));
}
HeaderSearchQuery searchCondition=SearchQuery.HeaderContains(“邮件Id”,ssMailItemId);
var folder=client.GetFolder(ssFolderName);
folder.Open(FolderAccess.ReadOnly);
IList ids=文件夹.Search(searchCondition);
foreach(ID中的UniqueId UniqueId)
{
mimessage message=folder.GetMessage(uniqueId);
foreach(message.Attachments中的MimeEntity附件)
{
附加(fillAttachmentDetailRecord(附件,uniqueId.Id.ToString());
}
但是MimeEntity.ContentDisposition.Size和MimePart.ContentDuration都是空的。是否有任何关于附件大小的字段?只有在
内容处置
标题具有大小参数时才会设置ContentDisposition.Size
属性,如下所示:
// specify that we want to fill the IMessageSummary.Body and IMessageSummary.UniqueId fields...
var items = folder.Fetch (ids, MessageSummaryItems.BodyStructure | MessageSummaryItems.UniqueId);
foreach (var item in items) {
foreach (var attachment in item.Attachments) {
// 'octets' is just a fancy word for "number of bytes"
var size = attachment.Octets;
// download the individual attachment
var entity = folder.GetBodyPart (item.UniqueId, attachment);
}
}
内容配置:附件;大小=15462
但无论如何,这个值都不应该被信任
如果您想要附件的大小,唯一准确的方法是执行以下操作:
// specify that we want to fill the IMessageSummary.Body and IMessageSummary.UniqueId fields...
var items = folder.Fetch (ids, MessageSummaryItems.BodyStructure | MessageSummaryItems.UniqueId);
foreach (var item in items) {
foreach (var attachment in item.Attachments) {
// 'octets' is just a fancy word for "number of bytes"
var size = attachment.Octets;
// download the individual attachment
var entity = folder.GetBodyPart (item.UniqueId, attachment);
}
}