Получение электронных писем с помощью IMAPX VB.NET
Я старался следить за этой статьей
То, что я пытаюсь сделать, - это получить электронную почту с помощью IMAPX.Проблема в том, что когда я создаю класс для обработки всех функций с помощью этого кода :
Imports System Imports System.Collections.Generic Imports System.Linq Imports System.Text Imports System.Threading.Tasks Imports ImapX Imports ImapX.Collections Imports System.Windows Namespace ImapPackage Class ImapService Private Shared Property client As ImapClient Public Shared Sub Initialize() client = New ImapClient("imap.gmail.com", True) If Not client.Connect() Then Throw New Exception("Error connecting to the client.") End If End Sub Public Shared Function Login(ByVal u As String, ByVal p As String) As Boolean Return client.Login(u, p) End Function Public Shared Sub Logout() If client.IsAuthenticated Then client.Logout() End If MainWindow.LoggedIn = False End Sub Public Shared Function GetFolders() As List(Of EmailFolder) Dim folders = New List(Of EmailFolder)() For Each folder In client.Folders folders.Add(New EmailFolder With {.Title = folder.Name}) Next client.Folders.Inbox.StartIdling() client.Folders.Inbox.OnNewMessagesArrived += AddressOf Inbox_OnNewMessagesArrived Return folders End Function Private Shared Sub Inbox_OnNewMessagesArrived(ByVal sender As Object, ByVal e As IdleEventArgs) MessageBox.Show($"A new message was downloaded in {e.Folder.Name} folder.") End Sub Public Shared Function GetMessagesForFolder(ByVal name As String) As MessageCollection client.Folders(name).Messages.Download() Return client.Folders(name).Messages End Function End Class End Namespace
Исключение, которое я получаю :
1 • Тип папки электронной почты не определен
2 • публичное событие OnNewMessageArrived as EventHandler(Of IdleEVentArgs) является событием и не может быть вызвано напрямую.Используйте оператор RaiseEvent
2-я проблема не так уж серьезна, но как я могу исправить 1-ю ? Что я упускаю ?
Что я уже пробовал:
Все, что я пробовал, упоминается в посте выше .
Barry_Sharp
На случай, если вам интересно, я использовал это класс c# для imap-клиента в прошлом, вот так:
Использование imap в качестве нового ImapClient("imap.gmail.com")
протокол IMAP.Проверки подлинности ("в<имя пользователя> В", "в<пароль&ГТ;")
Для каждого folderInfo в imap.ListFolders()
Тусклая папка = folderInfo.Name
imap.SelectFolder(папка, True)
Для каждого messageInfo в imap.ListMessages()
Дим сообщение = протокол IMAP.Метод GetMessage(messageInfo.Жидкости)
- Тодо ...
Следующий
Следующий
Конец Использования
Наконец, вы также можете проверить этот пример на наличие получение или извлечение электронных писем в c# и vb.net.