Загрузка сообщений электронной почты с помощью IAPX

Я только начал использовать библиотеку с открытым исходным кодом под названием 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. Я буквально понятия не имею, что написать на этой странице. Кто-нибудь может мне помочь?


person Community    schedule 03.03.2018    source источник


Ответы (1)


К сожалению, теперь у меня возникли проблемы с доступом к статье о проекте Code, но если вам нужно получить электронные письма, вы можете начать со следующего примера кода, который извлекает электронные письма из папки «Входящие». Я думаю, что это может сработать и для вас.

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

Надеюсь, поможет. Хорошие байты.

person Aleph0    schedule 09.04.2018