Mit IMAP-Server C# verbinden

In verschiedenen Fällen wird von den Python Anwendungen aus auf die Email-Server zugegriffen, um Emails zu lesen oder Email-Clients zu implementieren. Zum Abrufen von Emails von einem Email-Server wird üblicherweise das Protokoll Internet Message Access Protocol (IMAP) verwendet. In diesem Artikel zeigen wir Ihnen, wie Sie Emails von einem Server mit IMAP in Python lesen. Der Artikel behandelt explizit, wie man sich mit einem Email-Server verbindet, auf den gewünschten Ordner zugreift und Emails liest.

Python Bibliothek zum Lesen von Emails mit IMAP

Um Emails vom Email-Server über IMAP zu lesen, verwenden wir Aspose.Email for Python via .NET. Es ist eine leistungsstarke Email Bibliothek, mit der Sie Emails senden und auf Postfächer von Email-Servern zugreifen können. Sie können die Bibliothek von PyPI mit dem folgenden Befehl installieren.

pip install Aspose.Email-for-Python-via-NET

Für die manuelle Installation mit einer .whl Datei können Sie die folgenden Schritte ausführen.

  • Laden Sie die installierbare .whl Datei aus dem Abschnitt downloads herunter.
  • Verwenden Sie in der Befehlszeile den Befehl: pip install «FileName> >.whl, um die Bibliothek zu installieren.

Stellen Sie über IMAP in Python eine Verbindung zum Email-Server her

Im Folgenden finden Sie die Schritte zum Herstellen einer Verbindung zu einem Email-Server über IMAP.

  1. Erstellen Sie eine Instanz der ImapClient Klasse und initialisieren Sie sie mit Hostname, Port, Benutzername und Kennwort.
  2. Verwenden Sie das ImapClient objekt, um auf das Postfach zuzugreifen.

Das folgende Codebeispiel zeigt, wie Sie mit IMAP in Python eine Verbindung zu einem Email-Server herstellen.

from aspose.email import SecurityOptions, ImapClient

# create an instance of ImapClient and provide host, port, username and password
client = ImapClient("imap.domain.com", 993, "user@domain.com", "password")

# set security options
client.security_options = SecurityOptions.SSLIMPLICIT

# use ImapClient object to access mailbox

Greifen Sie auf Email Ordner von Mailbox in Python zu

Nachdem Sie die Verbindung zum Email-Server hergestellt haben, können Sie den Ordner auswählen, aus dem Sie die Email-Nachrichten lesen möchten. Schauen wir uns zuerst an, wie Sie die Liste aller Ordner im Postfach erhalten. Im Folgenden finden Sie die Schritte zum Abrufen von Informationen zu jedem Ordner.

  1. Erstellen Sie eine Instanz der ImapClient Klasse und initialisieren Sie sie mit Hostname, Port, Benutzername und Kennwort.
  2. Verwenden Sie die Methode ImapClient.listfolders(), um die Ordnersammlung in einem Objekt abzurufen.
  3. Durchlaufen Sie die Sammlung und rufen Sie die Details der Ordner ab.

Das folgende Codebeispiel zeigt, wie Details der Ordner in einem Postfach gedruckt werden.

from aspose.email import ImapClient

# create an instance of ImapClient and provide host, port, username and password
with ImapClient("imap.gmail.com", 993, "username", "password") as client:

    # get list of folders
    folderInfoColl = client.list_folders()

    # iterate through the collection to get folders' info one by one
    for folderInfo in folderInfoColl:
        print("Folder name is " + folderInfo.name)
        folderExtInfo = client.get_folder_info(folderInfo.name)
        print("New message count: " + str(folderExtInfo.new_message_count))
        print("Is it readonly? " + str(folderExtInfo.read_only))
        print("Total number of messages " + str(folderExtInfo.total_message_count))
    

Lassen Sie uns nun mit dem Zugriff auf einen bestimmten Ordner im Postfach über IMAP fortfahren.

  1. Erstellen Sie eine Instanz der ImapClient Klasse und initialisieren Sie sie mit Hostname, Port, Benutzername und Kennwort.
  2. Verwenden Sie die Methode ImapClient.selectfolder(string), um den Ordner auszuwählen.

Das folgende Codebeispiel zeigt, wie Sie einen Email Ordner aus dem Postfach auswählen.

from aspose.email import ImapClient

# create an instance of ImapClient and provide host, port, username and password
with ImapClient("imap.gmail.com", 993, "username", "password") as client:

    # select the folder from mailbox
    client.select_folder("Inbox")

Lesen Sie Emails aus einem Ordner in Python

Im Folgenden sind die Schritte zum Lesen von Email-Nachrichten aus einem bestimmten Ordner im Postfach mit Python aufgeführt.

  1. Erstellen Sie eine Instanz der ImapClient Klasse und initialisieren Sie sie mit Hostname, Port, Benutzername und Kennwort.
  2. Verwenden Sie die Methode ImapClient.selectfolder(string), um den Ordner auszuwählen.
  3. Rufen Sie die Liste der Nachrichten im Ordner mit der methode client.listmessages() ab.
  4. Durchlaufen Sie die Sammlung von Nachrichten.
  5. Rufen Sie Details zu jeder Email-Nachricht ab und speichern Sie sie bei Bedarf auf der Festplatte.

Das folgende Codebeispiel zeigt, wie Emails von einem Email-Server in Python gelesen werden.

from aspose.email import ImapClient

# create an instance of ImapClient and provide host, port, username and password
with ImapClient("imap.gmail.com", 993, "username", "password") as client:

        # select folder
        client.select_folder("Inbox")

        # read each message in collection
        for msg in client.list_messages():
            print( "From: '{}', MIME Id: {}".format(msg.from_address, msg.message_id) )
            
            # save message on disk
            client.save_message(msg.unique_id, msg.unique_id + "_out.eml")

Holen Sie sich eine kostenlose API Lizenz

Sie können Aspose.Email for Python über .NET kostenlos verwenden, indem Sie eine temporäre Lizenz erwerben.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie Emails von einem Email-Server mit IMAP in Python lesen. Die Codebeispiele haben gezeigt, wie Sie eine Verbindung zu einem Email-Server herstellen, die Liste der Ordner im Postfach abrufen, einen Ordner auswählen und Emails lesen. Außerdem können Sie Dokumentation besuchen, um mehr über Aspose.Email for Python über .NET zu erfahren. Außerdem können Sie das vollständige Paket der Quellcodebeispiele von GitHub herunterladen. Falls Sie Fragen oder Anregungen haben, können Sie uns diese gerne über unser Forum mitteilen.

Siehe auch