使用IMAPX

时间:2018-03-03 12:22:04

标签: c# email codeplex imapx

我刚开始使用名为IMAPX的开源库与我的IMAP邮箱进行交互。我关注this article on CodeProject。我可以正确登录并检索电子邮件文件夹。但问题是,这篇文章似乎不完整,这让我处于中间道路。首先,Retrieving Email Folder的部分不起作用。我不得不做一个解决方法。现在,我正在尝试下载文件夹的电子邮件。关于这个问题的文章只有几行代码:

private void foldersList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
   var item = foldersList.SelectedItem as EmailFolder;

   if(item != null)
   {
      // Load the folder for its messages.
      loadFolder(item.Title);
   }
}

private void loadFolder(string name)
{
   ContentFrame.Content = new FolderMessagesPage(name);
}

本文未解释有关FolderMessagesPage的任何内容。所以,我制作了一个名为FolderMessagesPage的测试页面。我完全不知道在该页面放什么。有人可以指导我吗?

1 个答案:

答案 0 :(得分:0)

不幸的是,现在我在访问Code Project上的文章时遇到了一些问题,但如果您需要检索电子邮件,则可以从以下示例代码开始,该代码从Inbox文件夹中检索电子邮件。我认为这对你也有用。

        private static readonly ImapClient _client = new ImapX.ImapClient(ServerImapName, ImapPort, ImapProtocol, false);

        if (!_client.Connect())
        {
            throw new Exception("Error on conncting to the Email server.");
        }

        if (!_client.Login(User, Password))
        {
            throw new Exception("Impossible to login to the Email server.");
        }

        public static List<string> GetInboxEmails()
    {
        var lstInEmails = new List<string>();
        // select the inbox folder
        Folder inbox = _client.Folders.Inbox;
        if (inbox.Exists > 0)
        {
            var arrMsg = inbox.Search("ALL", ImapX.Enums.MessageFetchMode.Full);

            foreach (var msg in arrMsg)
            {
                var subject = msg.Subject;
                var mailBody = msg.Body.HasHtml ? msg.Body.Html : msg.Body.Text;
                lstInEmails.Add(string.Concat(subject, " - ", mailBody );
            }
        }


        return lstInEmails;
    }

希望它有所帮助。 好字节。