【发布时间】:2014-04-26 03:20:35
【问题描述】:
我正在使用 AE.net.mail 从 hotmail 帐户下载附件。以下是代码。 Messages 数组根据给定条件获取所有邮件。问题是每条记录的 message.Value 属性都是空的,除了第一条记录。
ImapClient ic = new ImapClient("imap-mail.outlook.com", "xxx@hotmail.com", "xxx", ImapClient.AuthMethods.Login, 993, true))
{
ic.SelectMailbox("INBOX");
Lazy<MailMessage>[] messages = ic.SearchMessages(SearchCondition.From("xxx@yahoo.com"));
foreach (Lazy<MailMessage> message in messages)
{
MailMessage m = message.Value;
}
foreach (Attachment attachment in m.Attachments)
{
fileExtension = Path.GetExtension(attachment.Filename);
attachment.Save(@"H:\Demo\" + fileName + Path.GetExtension(attachment.Filename));
}
}
我无法理解为什么。请指导。谢谢。
【问题讨论】:
-
请检查您的大括号 - 据我所知,您发布的代码不应编译,因为
MailMessage m的范围仅限于第一个 foreach。另外,这不应该以using(ImapClient ic = ...开头吗? -
@Marijn。这应该从使用开始,但不使用也可以正常工作并且执行良好。我所问的只是因为懒惰。
标签: c# asp.net .net lazy-loading imap