Načíst a vypsat e‑maily z IMAP serveru
Načítání a výpis zpráv
Jak získat identifikační informace o zprávách v poštovní schránce
Při získávání a zpracování e‑mailových zpráv můžete získat podrobné identifikační informace, jako jsou sekvenční čísla a unikátní ID, pomocí následujících funkcí poskytovaných nejnovější verzí Aspose.Email pro .NET:
Aspose.Email.ImapMessageInfo třída: představuje identifikační informace o zprávě v IMAP poštovní schránce.
ImapMessageInfo.SequenceNumber vlastnost: získává sekvenční číslo zprávy.
ImapMessageInfo.UniqueId vlastnost: získává unikátní identifikátor zprávy.
Aspose.Email.MailMessage.ItemId vlastnost: představuje další identifikační informace o zprávě v poštovní schránce.
Následující úryvek kódu demonstruje, jak získat identifikační informace o zprávách v IMAP poštovní schránce:
- Vytvořte instanci ImapClient třída poskytnutím nezbytných parametrů, jako je hostitel IMAP serveru, port, e‑mailová adresa, heslo a bezpečnostní možnosti.
- Použijte ListMessages metoda pro získání seznamu zpráv ze složky "INBOX". Omezte seznam na prvních pět zpráv pomocí metody Take(5).
- Extrahujte sekvenční čísla uvedených zpráv pomocí SequenceNumber vlastnost každé zprávy.
- Použijte FetchMessages metoda pro načtení úplných detailů zpráv ze serveru pomocí sekvenčních čísel získaných v předchozím kroku.
- Procházejte načtené zprávy a pro každou zprávu načtěte a zobrazte následující informace:
- Sekvenční číslo zprávy.
- Vlastnost ItemId.SequenceNumber.
- Předmět zprávy.
using (var client = new ImapClient(imapHost, port, emailAddress, password, securityOption))
{
// List the first 5 messages from the inbox
var msgs = client.ListMessages("INBOX").Take(5);
// Get sequence numbers of the messages
var seqIds = msgs.Select(t => t.SequenceNumber);
// Fetch messages based on sequence numbers
var msgsViaFetch = client.FetchMessages(seqIds);
for (var i = 0; i < 5; i++)
{
var thisMsg = msgsViaFetch[i];
Console.WriteLine($"Message ID: {seqIds.ElementAt(i)} SequenceNumber: {thisMsg.ItemId.SequenceNumber} Subject: {thisMsg.Subject}");
}
}
Vypsat MIME ID zpráv ze serveru
ImapMessageInfo poskytuje MIME MessageId pro identifikaci zprávy bez extrakce celé zprávy. Následující úryvek kódu ukazuje, jak vypsat MIME messageId.
Seznam zpráv ze serveru
Aspose.Email poskytuje 2‑člennou přetíženou variantu ListMessages() pro načtení určeného počtu zpráv podle dotazu. Následující úryvek kódu ukazuje, jak vypsat zprávy.
Vypsat zprávy rekurzivně
Protokol IMAP podporuje rekurzivní výpis zpráv ze složky poštovní schránky. To pomáhá také vypisovat zprávy z podadresářů složky. Následující úryvek kódu ukazuje, jak vypisovat zprávy rekurzivně.
Vypsat zprávy s více spojeními
ImapClient poskytuje UseMultiConnection vlastnost, která může být použita k vytvoření více spojení pro náročné operace. Počet spojení, která budou použita během režimu multipojení, můžete také nastavit pomocí ImapClient.ConnectionsQuantity. Následující úryvek kódu demonstruje použití režimu multipojení pro výpis zpráv a porovnává jeho výkon s režimem jednopojízdného připojení.
Vypsat zprávy s podporou stránkování
Ve scénářích, kdy e‑mailový server obsahuje velké množství zpráv v poštovní schránce, je často požadováno vypsat nebo načíst zprávy s podporou stránkování. Aspose.Email API ImapClient umožňuje získat zprávy ze serveru s podporou stránkování.
Seznam příloh zprávy
Chcete‑li získat informace o přílohách, jako je název či velikost, aniž byste načítali data přílohy, vyzkoušejte následující API:
- Aspose.Email.Clients.Imap.ImapAttachmentInfo – představuje informace o příloze.
- Aspose.Email.Clients.Imap.ImapAttachmentInfoCollection – představuje kolekci ImapAttachmentInfo třída.
- Aspose.Email.Clients.Imap.ListAttachments(int sequenceNumber) – získá informace o každé příloze ve zprávě.
Ukázkový kód s následujícími kroky vám ukáže, jak používat API:
- Zavolejte ListMessages() metoda na objektu imapClient. Tato metoda vrátí ImapMessageInfoCollection obsahující informace o zprávách v poštovní schránce.
- Procházejte každou zprávu v kolekci messageInfoCollection pomocí smyčky foreach.
- Zavolejte ListAttachments() metoda na objektu imapClient, která předává vlastnost SequenceNumber objektu message jako parametr. Tato metoda vrátí ImapAttachmentInfoCollection obsahující informace o přílohách zprávy.
- Procházejte každou přílohu ve sbírce attachmentInfoCollection pomocí smyčky foreach.
- Vnitřní smyčkou můžete získat informace o každé příloze pomocí vlastností objektu attachmentInfo.
var messageInfoCollection = imapClient.ListMessages();
foreach (var message in messageInfoCollection)
{
var attachmentInfoCollection = imapClient.ListAttachments(message.SequenceNumber);
foreach (var attachmentInfo in attachmentInfoCollection)
{
Console.WriteLine("Attachment: {0} (size: {1})", attachmentInfo.Name, attachmentInfo.Size);
}
}
Stahování a ukládání zpráv
Načíst zprávy ze serveru
The ImapClient třída může načíst zprávy z IMAP serveru a uložit je ve formátu EML na lokální disk. Následující kroky jsou potřeba k uložení zpráv na disk:
- Vytvořte instanci ImapClient třída.
- Zadejte název hostitele, port, uživatelské jméno a heslo v ImapClient konstruktéru.
- Vyberte složku pomocí SelectFolder() metoda.
- Zavolejte ListMessages metodu pro získání ImapMessageInfoCollection objektu.
- Iterujte přes ImapMessageInfoCollection kolekci, zavolejte SaveMessage() metodu a poskytnout výstupní cestu a název souboru.
Následující úryvek kódu ukazuje, jak načíst e‑mailové zprávy ze serveru a uložit je.
Načíst zprávy v sestupném pořadí
Aspose.Email poskytuje ImapClient.ListMessagesByPage metoda, která vypisuje zprávy s podporou stránkování. Některé přetížení ImapClient.ListMessagesByPage přijímá PageSettings jako parametr. PageSettings poskytuje AscendingSorting vlastnost, která při nastavení na false vrací e‑maily v sestupném pořadí.
Následující ukázkový kód demonstruje použití AscendingSorting vlastnost třídy PageSettings třída pro změnu pořadí e‑mailů.
Uložit zprávy ve formátu MSG
Pro uložení e‑mailů ve formátu MSG, ImapClient.FetchMessage() metodu je nutné zavolat. Vrací zprávu v instanci MailMessage třída. The MailMessage.Save() metoda může být poté zavolána k uložení zprávy do MSG. Následující úryvek kódu ukazuje, jak uložit zprávy ve formátu MSG.
Seskupit načtené zprávy
ImapClient poskytuje FetchMessages metoda, která přijímá iterovatel sekvenčních čísel nebo unikátní ID a vrací seznam MailMessage. Následující úryvek kódu demonstruje použití FetchMessages metoda pro načtení zpráv podle sekvenčních čísel a unikátního ID.
Načíst složky a číst zprávy rekurzivně
V tomto článku je většina ImapClient funkce se používají k vytvoření aplikace, která rekurzivně vypisuje všechny složky a podsložky z IMAP serveru. Zprávy v každé složce a podsložce ukládá ve formátu MSG na lokální disk. Na disku jsou složky a zprávy vytvořeny a uloženy ve stejné hierarchické struktuře jako na IMAP serveru. Následující úryvek kódu ukazuje, jak získat zprávy a informace o podsložkách rekurzivně.
Zpracování speciálních informací o zprávě
Získat dodatečné parametry jako souhrnné informace
Získat informace z hlavičky List-Unsubscribe
Hlavička List-Unsubscribe obsahuje URL pro odhlášení z e‑mailových seznamů, např. reklamy, newslettery atd. Pro získání hlavičky List-Unsubscribe použijte ListUnsubscribe vlastnost třídy ImapMessageInfo třída. Následující příklad ukazuje použití ListUnsubscribe vlastnost pro získání hlavičky List-Unsubscribe.