E-Mails mit C# .NET abrufen

Beim Erstellen einer E-Mail-Verwaltungsanwendung ist einer der entscheidenden Schritte, eine zuverlässige und schnelle Funktionalität zum Abrufen von Nachrichten aus einem Posteingang einzurichten. In diesem Artikel werden wir erkunden, wie man die Leistungsfähigkeit der .NET-Bibliothek nutzt, um E-Mails in C# über POP3, IMAP, EWS, Graph API und aus Offline-Postfachspeichern verschiedener Formate am Beispiel einer PST-Datei abzurufen. Der Artikel wird von klaren Codebeispielen begleitet, die Sie verwenden können, um die Funktionalität der Bibliothek zu testen.

.NET API zum Abrufen von Nachrichten

Um Nachrichten von einem Server oder einem Postfachspeicher in C# zu extrahieren, verwenden wir Aspose.Email für .NET. Dies ist eine leistungsstarke API-Bibliothek, die Entwicklern ermöglicht, mit E-Mails in ihren .NET-Anwendungen zu arbeiten. Sie bietet eine umfassende Sammlung von Funktionen für die Arbeit mit E-Mails in verschiedenen Szenarien. Sie vereinfacht die Arbeit beim Erstellen, Bearbeiten und Konvertieren von E-Mail-Nachrichten, beim Arbeiten mit E-Mail-Anhängen, Kalendern, Kontakten usw. sowie beim Extrahieren von Nachrichten aus Postfächern und der Verwaltung ihres Inhalts entsprechend den Bedürfnissen. Sie können die API problemlos in Ihr Projekt einfügen, nachdem Sie die DLL heruntergeladen oder sie von NuGet mit dem folgenden Befehl installiert haben:

PM> Install-Package Aspose.Email

E-Mails über POP3 abrufen

Mit dem POP3-Protokoll werden E-Mails vom Server auf Ihr lokales System heruntergeladen, was einen einfachen Zugang und eine einfache Verwaltung ermöglicht. Seine Funktionalität kann mühelos in Ihre Anwendung integriert werden. Die Aspose.Email für .NET POP3Client-Klasse wird verwendet, um ein POP3-Clientobjekt für Manipulationen mit Nachrichten zu erstellen.

Das Codebeispiel und die Schritte unten zeigen, wie man den POP3-Client verwendet, um sich mit einem POP3-Mailserver zu verbinden, eine Liste von Nachrichten abzurufen und den Nachrichteninhalt abzurufen:

  1. Zuerst wird die Instanz des POP3-Clientobjekts erstellt.
  2. Da das POP3-Protokoll keine eingebaute Verschlüsselung bietet, wodurch die Übertragung von E-Mail-Nachrichten anfällig für Abfangen und unbefugten Zugriff ist, wird dann die SecurityOptions-Eigenschaft gesetzt, um einen Sicherheitsmechanismus mit dem Server zu verwenden.
  3. Innerhalb einer foreach-Schleife durchläuft der Code jede Nachricht im Postfach und ruft den Nachrichteninhalt mit der FetchMessage-Methode ab.

Sie können den Code weiter anpassen, um Ihren spezifischen Bedürfnissen gerecht zu werden und den abgerufenen Nachrichteninhalt in der gewünschten Weise mit anderen Funktionen der .NET-Bibliothek zu verwenden.

IMAP verwenden, um Nachrichten abzurufen

IMAP ist ein weiteres beliebtes Protokoll, das einen synchronisierten und vielseitigen Ansatz für den Zugriff auf E-Mails bietet. Im Gegensatz zu POP3 bleiben E-Mails auf dem Server, während Sie sie von mehreren Geräten aus verwalten und organisieren können. Änderungen, die auf einem Gerät vorgenommen werden, werden auf allen Geräten angezeigt, was ein nahtloses und konsistentes E-Mail-Erlebnis bietet.

Aspose.Email für .NET bietet Ihnen die ImapClient-Klasse und ihre Eigenschaften, um sich mit dem IMAP-Mailserver zu verbinden und E-Mails in den Ordnern zu verwalten. Das folgende Codebeispiel mit Schritten zeigt Ihnen, wie Sie Nachrichten vom Server abrufen:

  1. Instanziieren Sie die IMAPClient-Instanz.
  2. Stellen Sie die Sicherheit Ihrer E-Mail-Kommunikation ein, indem Sie die SecurityOptions-Eigenschaft festlegen.
  3. Zeigen Sie die Posteingangsnachrichten an, indem Sie sie nacheinander abrufen.

Nachrichten von MS Exchange Server mit EWSClient abrufen

Für Anwendungen, die mit Microsoft Exchange-Servern interagieren, bietet Aspose.Email für .NET Unterstützung für EWS. Dieses Protokoll erleichtert erweiterte Operationen, einschließlich des Abrufs von E-Mails, der Verwaltung von Kalendern und der Synchronisierung von Kontakten. EWS ist besonders vorteilhaft für Anwendungen, die eine Integration mit Microsoft Exchange-Umgebungen erfordern.

Um sich mit dem Exchange-Server zu verbinden und E-Mail-Nachrichten abzurufen, verwenden wir die IEWSClient-Klasse der .NET-API. Das folgende Codebeispiel zeigt, wie man eine Verbindung zum Postfach herstellt, Nachrichten im Posteingangsordner auflistet und dann jede einzelne E-Mail-Nachricht abruft. Dieser Prozess ermöglicht Entwicklern, auf effiziente Weise programmgesteuert auf E-Mail-Daten innerhalb ihrer .NET-Anwendungen zuzugreifen und sie zu manipulieren.

  1. Initialisieren Sie einen EWS-Client, indem Sie die GetEWSClient-Methode der C#-Bibliothek aufrufen.
  2. Durchlaufen Sie die Posteingangsnachrichten in der foreach-Schleife mit der ListMessages-Methode.
  3. Rufen Sie den Inhalt der E-Mail-Nachricht mit der FetchMessage-Methode ab.

Je nach den Anforderungen Ihrer Anwendung können Sie zusätzliche Verarbeitungen an der abgerufenen eml-Variable durchführen. Dies könnte das Parsen von E-Mail-Headern, das Extrahieren von Anhängen, das Analysieren des E-Mail-Inhalts oder andere relevante Operationen unter Verwendung unserer funktionsreichen API umfassen.

Microsoft Graph zum Extrahieren von Nachrichten von einem Server

Aspose.Email für .NET ermöglicht Entwicklern die Nutzung der Microsoft Graph API für den E-Mail-Abruf. Durch die Integration der Graph API erhält Ihre Anwendung Zugriff auf einen einheitlichen Endpunkt zum Abrufen von E-Mails, Kalendern und Kontakten. Diese Integration ist von unschätzbarem Wert, wenn Sie umfassende, multifunktionale Anwendungen erstellen möchten.

Das Codebeispiel und die Schritte, die unten angegeben sind, zeigen, wie Sie die Microsoft Graph API verwenden, um mit E-Mail-Ordnern und Nachrichten zu arbeiten. Es erstellt einen Graph-Client, ruft den “Posteingang”-Ordner ab und durchläuft die Nachrichten in diesem Ordner, um jede Nachricht abzurufen.

  1. Erstellen Sie eine Graph-Client-Instanz, indem Sie die GetClient-Methode der GraphClient-Klasse aufrufen und den tokenProvider sowie die “Tenant-ID” als Parameter übergeben.
  2. Verwenden Sie die ListFolders-Methode des Clients, um eine Sammlung aller Ordner abzurufen.
  3. Holen Sie sich den “Posteingang”-Ordner, indem Sie die FirstOrDefault LINQ-Methode auf der Ordnersammlung verwenden. Der Lambda-Ausdruck prüft, ob die DisplayName-Eigenschaft eines Ordners mit “Posteingang” übereinstimmt.
  4. Durchlaufen Sie die Nachrichten im abgerufenen Ordner.ItemId, indem Sie ListMessages auf dem Client aufrufen.
  5. Rufen Sie für jede Nachricht die Einzelheiten der Nachricht ab, indem Sie FetchMessage auf dem Client aufrufen und msgInfo.ItemId als Parameter übergeben.

Nachrichten aus Offline-Postfachspeicher extrahieren

Unsere umfassende C#-Bibliothek ermöglicht es Ihnen, Anwendungen mit Offline-Postfachspeicherfähigkeiten zu erstellen. Durch die Nutzung dieser Funktion können Sie E-Mails lokal herunterladen und speichern, um auch ohne Internetverbindung darauf zugreifen zu können. Dies ist besonders nützlich für Benutzer, die nahtlosen E-Mail-Zugriff unterwegs benötigen.

Die Bibliothek funktioniert gut mit eigenständigen Speichern verschiedener Formate, wie PST, MBOX, OLM, TGZ, aber in diesem Artikel betrachten wir ein Beispiel zum Abrufen von E-Mails aus PST.

Um diese Funktion mit Offline-Zugriff auf die Postfachinformationen zu implementieren, verwenden wir die PersonalStorage-Klasse der Bibliothek. Im Folgenden finden Sie das Codebeispiel und die Schritte zum Abrufen von Nachrichten aus einer PST-Datei:

  1. Beginnen Sie damit, ein neues persönliches Speicherobjekt zu erstellen, indem Sie die FromFile-Methode der PersonalStorage-Klasse aufrufen und den Pfad der PST-Datei als Parameter übergeben.

  2. Initialisieren Sie eine Variable mit dem Namen “folder”, indem Sie die GetSubfolder-Methode der RootFolder-Eigenschaft des persönlichen Speicherobjekts aufrufen. Übergeben Sie den String “Posteingang” als Parameter, um den Namen des Ordners anzugeben, den Sie abrufen möchten.

  3. Verwenden Sie eine foreach-Schleife, um über jedes “msgInfo”-Objekt in der Sammlung zu iterieren, die von der EnumerateMessages-Methode des “folder”-Objekts zurückgegeben wird.

  4. Innerhalb der Schleife erstellen Sie eine neue Variable mit dem Namen “msg”, indem Sie die ExtractMessage-Methode auf dem persönlichen Speicherobjekt aufrufen. Übergeben Sie die EntryIdString-Eigenschaft des aktuellen “msgInfo”-Objekts als Parameter, um anzugeben, welche Nachricht extrahiert werden soll.

Der Code führt die in den Schritten 3 und 4 angegebenen Operationen für jede Nachricht im Ordner aus.

Fazit

In diesem Artikel haben wir gelernt, wie man die Leistungsfähigkeit von Aspose.Email für .NET für den E-Mail-Abruf nutzt. Mit Unterstützung für POP3, IMAP, EWS, Graph API und Offline-Postfachspeicher ermöglicht die Bibliothek Ihnen, die Funktionalität Ihrer Anwendung an spezifische Bedürfnisse anzupassen. Egal, ob Sie eine Client-Anwendung, ein Integrationswerkzeug oder eine benutzerdefinierte Lösung entwickeln, unsere .NET-API bietet Ihnen die Werkzeuge, um ein nahtloses und effizientes E-Mail-Verwaltungserlebnis zu schaffen. Sie können andere Funktionen von Aspose.Email in der Dokumentation erkunden. Auch können Sie Ihre Fragen in unserem Forum posten.

Siehe auch