1

我刚开始使用名为 IMAPX 的开源库与我的 IMAP 邮箱进行交互。我正在关注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. 我真的不知道在那个页面上放什么。有人可以指导我吗?

4

1 回答 1

0

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

        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;
    }

希望能帮助到你。好字节。

于 2018-04-09T12:51:00.643 回答