使用ImapX和C#无法正确保存下载的电子邮件附件

时间:2013-12-03 15:10:22

标签: c# email gmail email-attachments imapx

我正在用C#编写程序,使用ImapX(版本2.0.0.13)从Gmail访问UNREAD电子邮件。我希望特别下载附件中的powerpoint(.ppt或.pptx)文件。我已经下载了附件工作。

但是,下载未正确保存在磁盘上。例如,如果附件的大小为3.5 MB,则仅保存2.4 MB。

我在这里错过了一步吗?

这是我的代码:

using(ImapClient client = new ImapClient(host, port, true, true))
{
    if (client.Login(username, password))
    {
        FolderCollection folders = client.Folders;
        Message[] messages = client.Folders["INBOX"].Search("UNSEEN", MessageFetchMode.Attachments, 100);

        for (int i = 0; i < messages.Length; i++)
        {
            if (messages[i].Attachments.Length > 0)
            {
                Attachment[] atts = messages[i].Attachments;
                for (int j = 0; j < atts.Length; j++)
                {
                    if (atts[j].FileName.Contains("ppt") || atts[j].FileName.Contains("pptx"))
                    {
                        atts[j].Download();
                        atts[j].Save(SAVE_LOCATION, atts[j].FileName);
                    }
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

我从ImapX site下载更新的源代码后问题得以解决。现在使用上面的源代码可以很好地工作。