首先,对不起我的英语。
我想在邮箱上显示附件名称文件列表。然后,从该列表中,用户可以选择要在hdd上下载哪些附件 - 例如,在此程序中: http://www.mailresender.com.ar/Read.html
我已经在Koolwired.Imap中写了这个:
for (int i = 0; i < mbStructure.BodyParts.Count; i++) // i = number of parts of body
{
if (mbStructure.BodyParts[i].Attachment)
{
mbStructure = command.FetchBodyPart(mbStructure, i);
System.Console.WriteLine(mbStructure.BodyParts[i].Disposition); // Disposition contains file name
//System.Console.WriteLine(mbStructure.BodyParts[i].Data); // Data contains entire file
}
}
但问题是不仅文件名被加载到内存中而且数据二进制文件(整个附件文件由 FetchBodyPart 方法加载) - 所以如果附件中的文件长度很大(例如20 MB)所有这20个MB也必须加载到内存中,因此显示文件名列表将持续很长时间。
有没有办法只加载没有文件的附件文件名? c#中的哪个库可以支持这个?
答案 0 :(得分:0)
您的问题的答案是 ImapCommand.FetchBodyStructure ,但是当我浏览源代码时,我打赌它会在某些电子邮件中失败。
您还可以查看Mail.dll IMAP component,特别是此博文可能有用:
http://www.lesnikowski.com/blog/index.php/get-email-information-from-imap-fast/
请注意,Mail.dll是我创建的商业产品。