E-Mails vom POP3-Server abrufen
E‑Mails ohne Parsen auf Festplatte speichern
Um E‑Mail‑Nachrichten von einem POP3‑Server ohne Parsen herunterzuladen, können Sie die save_message Methode von Aspose.Email Pop3Client Klasse. Das folgende Code‑Snippet veranschaulicht, wie man eine Nachricht anhand ihrer Sequenznummer speichert, in diesem Fall Nummer 1. Die save_message Methode bewahrt das ursprüngliche EML-Format, ohne zu parsen:
Nachrichten vor dem Speichern parsen
Sie können eine bestimmte E‑Mail‑Nachricht abrufen, indem Sie die fetch_message Methode des Pop3Client Klasse, die die gewünschte Sequenznummer für das Client‑Objekt angibt. Das folgende Code‑Beispiel zeigt, wie man eine bestimmte Nachricht abruft und sie dann mithilfe ihres Betreffs als Dateinamen speichert, indem man die save Methode am msg‑Objekt:
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)
E‑Mails vom Server nach Kriterien filtern
Das Aspose.Email Pop3Client class provides the list_messages() Methode, die alle Nachrichten aus einem Postfach holt. Um nur Nachrichten zu erhalten, die einer Bedingung entsprechen, verwende die überladene list_messages(query) Methode, die nimmt MailQuery als Argument. Die MailQuery Klasse bietet verschiedene Eigenschaften zum Festlegen der Abfragebedingungen, z. B. Datum, Betreff, Absender, Empfänger usw.
Um den Suchausdruck zu erstellen, verwenden Sie die MailQueryBuilder Klasse. Zuerst definieren Sie alle erforderlichen Bedingungen und Einschränkungen und füllen dann das MailQuery‑Objekt mit der von der MailQueryBuilder. Pop3Client verwendet dieses MailQuery‑Objekt, um gefilterte Informationen vom Server abzurufen.
Das folgende Codebeispiel demonstriert, wie man E‑Mails aus einem Gmail‑Konto anhand verschiedener Kriterien filtert und abruft, darunter Betreff, internes Datum, Absender und Empfänger. Es zeigt zudem das Fall‑sensitve Filtern und veranschaulicht, wie man effizient komplexe Abfragen erstellt.
- Stellen Sie eine Verbindung zum Gmail POP3‑Server her, indem Sie die Pop3Client Klasse mit der angegebenen Serveradresse, Port, Benutzername und Passwort. Sicherheitsoptionen werden auf AUTO gesetzt für eine sichere Verbindung.
- Erstellen Sie eine Instanz von dem MailQueryBuilder um die Suchkriterien für das Filtern von E‑Mails zu erstellen.
- Filtern nach Betreff:
- E‑Mails, die "Newsletter" im Betreff enthalten, werden als Filterbedingung angegeben.
- Filtern nach internem Datum:
- Ein Filter wird für E‑Mails, die am aktuellen Datum empfangen wurden, festgelegt.
- Ein zusätzlicher Filter wird hinzugefügt, um E‑Mails abzurufen, die in der letzten Woche empfangen wurden.
- Filtern nach Absender:
- Filter werden angewendet, um nach E‑Mails von einer bestimmten E‑Mail‑Adresse (saqib.razzaq@127.0.0.1) zu suchen und E‑Mails von einer bestimmten Domain (SpecificHost.com) einzuschließen.
- Filtern nach Empfänger:
- Ein Filter wird festgelegt, um E‑Mails zu finden, die an einen bestimmten Empfänger gesendet wurden.
- Abfragen kombinieren mit dem OR‑Operator, um nach E‑Mails zu suchen, die entweder einen bestimmten Betreff haben oder von einer bestimmten Adresse gesendet wurden.
- Fall‑sensitives Filtern:
- Ein case‑sensitiver Filter für den Betreff, der "Newsletter" enthält, wird angegeben (angezeigt durch den Parameter True).
- Nachrichten auflisten:
- Die Methode list_messages() wird mit der erstellten Abfrage aufgerufen, um die gefilterten Nachrichten aus dem Postfach abzurufen.
- Zum Schluss geben Sie die Anzahl der gefilterten Nachrichten aus.
E-Mails nach Datum filtern
Um Nachrichten nach Lieferdatum abzurufen, verwenden Sie die internal_date Eigenschaft wie im nachstehenden Codebeispiel gezeigt:
import aspose.email as ae
from datetime import datetime
builder = ae.tools.search.MailQueryBuilder()
builder.internal_date.on(datetime.now())
E-Mails nach Datumsbereich filtern
Um Nachrichten innerhalb eines Datumsbereichs abzurufen, verwenden Sie dieselbe internal_date Eigenschaft, die den Datumsbereich wie im nachstehenden Codebeispiel angegeben, spezifiziert:
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))
E-Mails nach Absender filtern
Um Nachrichten von einem bestimmten Absender abzurufen, verwenden Sie die from_address Eigenschaft wie im nachstehenden Codebeispiel gezeigt:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("saqib.razzaq@127.0.0.1")
E-Mails nach Domäne filtern
Um Nachrichten von einer bestimmten Domäne abzurufen, verwenden Sie die from_address Eigenschaft wie im nachstehenden Codebeispiel gezeigt:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("SpecificHost.com")
E-Mails nach Empfänger filtern
Um Nachrichten an einen bestimmten Empfänger abzurufen, verwenden Sie die to Eigenschaft wie im nachstehenden Codebeispiel gezeigt:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.to.contains("recipient")
Komplexe Suchabfragen erstellen
Manchmal ist es notwendig, mehr als eine Abfrage zu erfüllen. Aspose.Email ermöglicht das Kombinieren von Abfragen in mehreren Anweisungen. Erstellen Sie ein MailQueryBuilder Objekt und seine Eigenschaften verwenden, um spezifische Abfragen zu erstellen.
Abfragen mit AND kombinieren
Das folgende Code‑Snippet zeigt, wie man Abfragen mit dem AND‑Operator kombiniert:
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")
Abfragen mit OR kombinieren
Das folgende Code‑Snippet zeigt, wie man Abfragen mit dem OR‑Operator kombiniert:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.either(builder.subject.contains("test"), builder.from_address.contains("noreply@host.com"))
Case‑sensitive Filter anwenden
Die API bietet zudem die Möglichkeit, E‑Mails aus dem Postfach anhand einer case‑sensitiven Kriterien zu filtern. Die folgenden Methoden der StringComparisonField Klasse bietet die Möglichkeit, E‑Mails zu durchsuchen und dabei case‑sensitive Flags anzugeben:
Methode Aspose.Email.StringComparisonField.contains(value, ignore_case) Methode Aspose.Email.StringComparisonField.equals(value, ignore_case) Methode Aspose.Email.StringComparisonField.not_contains(value, ignore_case) Methode Aspose.Email.StringComparisonField.not_equals(value, ignore_case)
Das folgende Code‑Snippet zeigt, wie Sie diese Funktion in Ihr Projekt integrieren können:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("noreply@host.com", True)