Načítání e‑mailů ze serveru POP3
Uložit e‑maily na disk bez parsování
Pro stažení e‑mailových zpráv z POP3 serveru bez parsování můžete použít save_message metoda třídy Aspose.Email Pop3Client třída. Následující úryvek kódu ilustruje, jak uložit zprávu pomocí jejího pořadového čísla, v tomto případě čísla 1. save_message metoda zachovává původní formát EML bez parsování:
Parsovat zprávy před uložením
Můžete načíst konkrétní e‑mailovou zprávu pomocí fetch_message metoda třídy Pop3Client třída, která určuje požadované pořadové číslo pro objekt klienta. Následující ukázkový kód ukazuje, jak načíst konkrétní zprávu a poté ji uložit pomocí jejího předmětu jako názvu souboru voláním save metoda na objektu msg:
import aspose.email as ae
client = ae.clients.pop3.Pop3Client("host", 995, "username", "password", ae.clients.SecurityOptions.AUTO)
# Fetch the message by its sequence number and Save the message using its subject as the file name
msg = client.fetch_message(1)
msg.save("first-message_out.eml", ae.SaveOptions.default_eml)
Filtrovat e‑maily ze serveru podle kritérií
Aspose.Email Pop3Client třída poskytuje list_messages() metoda, která získá všechny zprávy z poštovní schránky. Pro získání jen zpráv, které splňují určitou podmínku, použijte přetíženou list_messages(query) metoda, která přijímá MailQuery jako argument. MailQuery třída poskytuje různé vlastnosti pro specifikaci podmínek dotazu, například datum, předmět, odesílatele, příjemce atd.
Pro vytvoření vyhledávacího výrazu použijte MailQueryBuilder třída. Nejprve definujte všechny potřebné podmínky a omezení a poté naplňte objekt MailQuery dotazem vytvořeným pomocí MailQueryBuilder. Pop3Client využívá tento objekt MailQuery k načtení filtrovaných informací ze serveru.
Následující ukázkový kód demonstruje, jak filtrovat a načítat e‑maily z účtu Gmail na základě různých kritérií včetně předmětu, interního data, odesílatele a příjemce. Také ukazuje filtrování rozlišující velikost písmen a demonstruje, jak efektivně sestavovat složité dotazy.
- Navázat spojení s POP3 serverem Gmailu pomocí Pop3Client třída se zadanou adresou serveru, portem, uživatelským jménem a heslem. Bezpečnostní volby jsou nastaveny na AUTO pro zabezpečené připojení.
- Vytvořte instanci MailQueryBuilder k vytvoření kritérií vyhledávání pro filtrování e‑mailů.
- Filtrování podle předmětu:
- E‑maily obsahující "Newsletter" v předmětu jsou zadány jako podmínka filtru.
- Filtrování podle interního data:
- Je nastaven filtr pro e‑maily přijaté v aktuálním datu.
- Je přidán další filtr pro načtení e‑mailů přijatých během posledního týdne.
- Filtrování podle odesílatele:
- Filtry jsou použity k vyhledání e‑mailů od konkrétní e‑mailové adresy (saqib.razzaq@127.0.0.1) a zahrnutí e‑mailů z určité domény (SpecificHost.com).
- Filtrování podle příjemce:
- Je zadán filtr pro nalezení e‑mailů odeslaných konkrétnímu příjemci.
- Kombinovat dotazy pomocí operátoru OR pro vyhledání e‑mailů, které buď odpovídají zadanému předmětu, nebo jsou odeslány z konkrétní adresy.
- Filtrování rozlišující velikost písmen:
- Je zadán filtr rozlišující velikost písmen pro předmět obsahující "Newsletter" (označeno parametrem True).
- Vypsání zpráv:
- Metoda list_messages() je volána s vytvořeným dotazem pro získání filtrovaných zpráv z poštovní schránky.
- Nakonec vypište počet filtrovaných zpráv.
Filtrovat e‑maily podle data
Pro získání zpráv podle data doručení použijte internal_date vlastnost, jak je ukázáno v následujícím ukázkovém kódu:
import aspose.email as ae
from datetime import datetime
builder = ae.tools.search.MailQueryBuilder()
builder.internal_date.on(datetime.now())
Filtrovat e‑maily podle časového rozmezí
Pro získání zpráv v časovém rozmezí použijte stejný internal_date vlastnost určující časové období, jak je ukázáno v následujícím ukázkovém kódu:
import aspose.email as ae
from datetime import datetime, timedelta
builder = ae.tools.search.MailQueryBuilder()
# Emails that arrived in last 7 days
builder.internal_date.before(datetime.now())
builder.internal_date.since(datetime.today() - timedelta(days=7))
Filtrovat e‑maily podle odesílatele
Pro získání zpráv od konkrétního odesílatele použijte from_address vlastnost, jak je ukázáno v následujícím ukázkovém kódu:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("saqib.razzaq@127.0.0.1")
Filtrovat e‑maily podle domény
Pro získání zpráv z konkrétní domény použijte from_address vlastnost, jak je ukázáno v následujícím ukázkovém kódu:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("SpecificHost.com")
Filtrovat e‑maily podle příjemce
Pro získání zpráv pro konkrétního příjemce použijte to vlastnost, jak je ukázáno v následujícím ukázkovém kódu:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.to.contains("recipient")
Vytvořte komplexní vyhledávací dotazy
Někdy je nutné vyhovět více než jednomu dotazu. Aspose.Email umožňuje kombinovat dotazy v několika prohlášeních. Vytvořte MailQueryBuilder objekt a použít jeho vlastnosti k vytvoření konkrétních dotazů.
Kombinovat dotazy pomocí AND
Následující úryvek kódu ukazuje, jak kombinovat dotazy pomocí operátoru AND:
import aspose.email as ae
from datetime import datetime, timedelta
builder = ae.tools.search.MailQueryBuilder()
builder.internal_date.before(datetime.now())
builder.internal_date.since(datetime.today() - timedelta(days=7))
builder.from_address.contains("SpecificHost.com")
Kombinovat dotazy pomocí OR
Následující úryvek kódu ukazuje, jak kombinovat dotazy pomocí operátoru OR:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.either(builder.subject.contains("test"), builder.from_address.contains("noreply@host.com"))
Použít filtrování rozlišující velikost písmen
API také poskytuje možnost filtrovat e‑maily z poštovní schránky na základě kritéria rozlišujícího velikost písmen. Následující metody StringComparisonField třída poskytuje možnost vyhledávat e‑maily s určením příznaků rozlišujících velikost písmen:
Metoda Aspose.Email.StringComparisonField.contains(value, ignore_case) Metoda Aspose.Email.StringComparisonField.equals(value, ignore_case) Metoda Aspose.Email.StringComparisonField.not_contains(value, ignore_case) Metoda Aspose.Email.StringComparisonField.not_equals(value, ignore_case)
Následující úryvek kódu ukazuje, jak implementovat tuto schopnost do vašeho projektu:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("noreply@host.com", True)