
- Reguläre Anhänge hinzufügen
- Inline-Anhänge hinzufügen
- Referenzanhänge hinzufügen
- Eingebettete Nachrichten hinzufügen
- Alle Anhänge als separate Dateien im MSG-Format speichern
E-Mail-Anhänge sind Dateien, die zusammen mit einer E-Mail-Nachricht gesendet werden und es Benutzern ermöglichen, Dokumente, Bilder, Videos oder andere digitale Inhalte zu teilen. Die effiziente Handhabung von E-Mail-Anhängen ist ein entscheidender Aspekt moderner Kommunikationssysteme, und für C#-Entwickler, die eine robuste Lösung suchen, um sie nahtlos in ihren Anwendungen zu verwalten.
C# .NET API zur Verwaltung von E-Mail-Anhängen
Um E-Mail-Anhänge zu verarbeiten, verwenden wir Aspose.Email für .NET, eine leistungsstarke und umfassende API, die für C#-Entwickler entwickelt wurde, um mit E-Mail-Nachrichten und verschiedenen verwandten Aufgaben innerhalb ihrer .NET-Anwendungen zu arbeiten. Sie bietet eine Vielzahl von Funktionen zum Erstellen, Verarbeiten, Konvertieren und Verwalten von Nachrichten und ist somit ein wertvolles Werkzeug für Unternehmen und Entwickler, die E-Mail-Funktionalitäten in ihre Softwareanwendungen integrieren müssen. Um die Leistungsfähigkeit der API zu nutzen, laden Sie ihre DLL herunter oder installieren Sie sie über NuGet.
Reguläre Anhänge hinzufügen
Reguläre Anhänge sind eigenständige Dateien, die mit einer E-Mail-Nachricht verbunden sind und typischerweise als separate Symbole oder Links im Text angezeigt werden.

Die intuitive API von Aspose.Email ermöglicht es Ihnen, einen regulären Anhang mit nur wenigen Zeilen Code zu einer Nachricht hinzuzufügen. Mit den folgenden Schritten und einem Codebeispiel erstellen Sie eine Beispiel-E-Mail-Nachricht (MSG) und fügen einen Datei-Anhang (“document.pdf”) hinzu, indem Sie die MapiMessage-Klasse in C# verwenden:
- Erstellen oder laden Sie eine MapiMessage.
- Lesen Sie den Inhalt der “document.pdf” in ein Byte-Array.
- Fügen Sie den Anhang mit dem Namen (“document.pdf”) und den Daten zur Attachments-Sammlung der Nachricht hinzu.
// Create a sample MSG and add document.pdf file as attachment | |
var msg = new MapiMessage("user1@from.com", "user2@to.com", "This is subject", "This is body"); | |
var data = File.ReadAllBytes("document.pdf"); | |
msg.Attachments.Add("document.pdf", data); |
Inline-Anhänge hinzufügen
Inline-Anhänge sind dazu gedacht, im Text der E-Mail-Nachricht selbst angezeigt zu werden. Dies wird häufig verwendet, um Bilder oder andere Medien direkt in den E-Mail-Inhalt einzubetten, sodass der Empfänger den Inhalt anzeigen kann, ohne einen separaten Anhang öffnen zu müssen.

Das Bild im Nachrichteninhalt ist ein Inline-Anhang. Die Aspose.Email-API ermöglicht es, zu überprüfen, ob ein Anhang inline ist, bevor weitere Manipulationen damit durchgeführt werden, und das folgende Codebeispiel zeigt, wie Sie diese Aufgabe ausführen.
- Laden Sie die E-Mail-Nachricht von der Datei mit der MapiMessage.Load()-Methode.
- Durchlaufen Sie die Sammlung der Anhänge.
- Geben Sie für jeden Anhang in der Sammlung deren Anzeige-Namen zusammen mit einem booleschen Wert aus, der angibt, ob sie inline oder regulär sind.
// Check if the Attachment is Inline or Regular | |
var msg = MapiMessage.Load("message.msg"); | |
foreach (var attach in msg.Attachments) | |
{ | |
Console.WriteLine($"{attach.DisplayName} : {attach.IsInline}"); | |
} |
Referenzanhänge hinzufügen
Referenzanhänge enthalten nicht den tatsächlichen Dateinhalt innerhalb der E-Mail-Nachricht. Stattdessen beinhalten sie Links zu externen Ressourcen, wie z.B. Bilder, die auf einem Webserver gehostet werden. Wenn der Empfänger die E-Mail öffnet, ruft sein Client oder Webbrowser diese Ressourcen von den angegebenen URLs ab, um den Inhalt anzuzeigen. So kann ein Benutzer es mit einem Link zu einer Datei, die auf Google Drive gespeichert ist, senden. Anstatt das Dokument direkt an die Nachricht anzuhängen, können Sie einen Link-Anhang erstellen, der auf die Datei auf Google Drive verweist.

Das folgende Codebeispiel zeigt, wie man eine Nachricht mit einem Referenzanhang erstellt:
- Erstellen oder laden Sie ein MapiMessage-Objekt.
- Fügen Sie der Nachricht einen Referenzanhang mit der MapiAttachmentCollection.Add-Methode hinzu, indem Sie den Dateinamen, die Datei-URL, die Ordner-URL und den Anbieternamen angeben.
- Setzen Sie den Berechtigungstyp für den Anhang mit der MapiAttachment.SetProperty-Methode, um anzugeben, wer ihn bearbeiten kann.
- Optional können Sie zusätzliche Eigenschaften festlegen, wie z.B. den ursprünglichen Berechtigungstyp, ob der Anhang ein Ordner ist, die URL des Anbieterendpunkts, die Vorschau-URL und die Thumbnail-URL.
- Speichern Sie die Nachricht in einer Datei mit der Save-Methode.
// Create a message | |
var msg = new MapiMessage("from@domain.com", "to@domain.com", "Outlook message file", | |
"This message with the Reference Attachment", OutlookMessageFormat.Unicode); | |
// Add reference attachment | |
msg.Attachments.Add("Document.pdf", | |
"https://drive.google.com/file/d/1HJ-M3F2qq1oRrTZ2GZhUdErJNy2CT3DF/", | |
"https://drive.google.com/drive/my-drive", | |
"GoogleDrive"); | |
//Also, you can set additional attachment properties | |
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentPermissionType, AttachmentPermissionType.AnyoneCanEdit); | |
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentOriginalPermissionType, 0); | |
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentIsFolder, false); | |
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentProviderEndpointUrl, ""); | |
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentPreviewUrl, ""); | |
msg.Attachments[0].SetProperty(KnownPropertyList.AttachmentThumbnailUrl, ""); | |
// Finally save the message | |
msg.Save(@"my.msg"); |
Eingebettete Nachrichten hinzufügen
Eingebettete Nachrichten sind solche, die in einer anderen E-Mail-Nachricht enthalten oder geschachtelt sind. Sie können ihren eigenen Inhalt, Anhänge und Metadaten enthalten und sind normalerweise im Text oder als Anhänge der übergeordneten Nachricht enthalten.
Dieses Konzept wird häufig in Szenarien verwendet, wie z.B. beim Weiterleiten oder Beantworten von E-Mails, wo die ursprüngliche Nachricht als Teil der neuen Nachricht enthalten ist. In solchen Fällen wird die ursprüngliche Nachricht zu einer eingebetteten Nachricht im Text der neuen Nachricht und behält ihren eigenen Inhalt, einschließlich Absender, Empfänger und Betreff. Diese Funktion ist grundlegend für die E-Mail-Kommunikation und ermöglicht es den Benutzern, einen kohärenten Gesprächsverlauf beizubehalten, während sie Nachrichten austauschen.

Aspose.Email bietet Komponenten für die Implementierung dieser Funktion. Das folgende Codebeispiel mit Schritten zeigt, wie man ein eingebettetes Objekt zu einer E-Mail-Nachricht hinzufügt:
- Erstellen Sie eine Instanz der MapiMessage-Klasse.
- Laden Sie die vorhandene Nachricht von der Datei mit der MapiMessage.Load()-Methode.
- Fügen Sie die geladene Nachricht als Anhang zu der zuvor erstellten hinzu. Verwenden Sie dazu die MapiAttachmentCollection.Add-Methode.
var msg = new MapiMessage("from@test.com", "to@test.com", "Subj", "This is a message body"); | |
var attachMsg = MapiMessage.Load("Weekly report.msg"); | |
msg.Attachments.Add("Weekly report", attachMsg); |
Alle Anhänge als separate Dateien im MSG-Format speichern
Das folgende Codebeispiel zeigt Ihnen, wie Sie eine E-Mail-Nachricht von einer Datei laden und jeden einzelnen Anhang aus der Nachricht in einer separaten Datei mit seinem ursprünglichen Dateinamen speichern.
- Erstellen Sie eine Instanz der MapiMessage-Klasse.
- Durchlaufen Sie die Sammlung der Anhänge der geladenen Nachricht.
- Speichern Sie jeden Anhang als separate Datei mit der Save-Methode und stellen Sie sicher, dass jeder Anhang mit seinem ursprünglichen Dateinamen gespeichert wird.
// Create an instance of MapiMessage from file | |
var msg = MapiMessage.Load("message.msg"); | |
// Iterate through the attachments collection | |
foreach (var attachment in msg.Attachments) | |
{ | |
// Save the individual attachment | |
attachment.Save(attachment.FileName); | |
} |
Fazit
In diesem Artikel haben wir die praktische Implementierung des Hinzufügens verschiedener Arten von Anhängen und eingebetteten Objekten zu E-Mail-Nachrichten untersucht, das Speichern von Anhängen in separaten Dateien in C# erläutert und prägnante Codebeispiele bereitgestellt, um die Prozesse zu veranschaulichen. Aspose.Email für .NET erweist sich als vielseitige Lösung, die Entwicklern ermöglicht, E-Mail-Anhänge effizient zu verwalten und Kommunikationsaufgaben innerhalb ihrer Anwendungen zu verbessern, um so ein kohärentes und nahtloses Erlebnis für die Endbenutzer zu gewährleisten.
Kostenlose Ressourcen:
- Support-Forum, um Fragen zu stellen, Hilfe zu suchen und sich mit der Community auszutauschen, um Probleme zu lösen oder Einblicke in die effektive Nutzung der Bibliothek zu gewinnen
- umfangreiche Dokumentation, die verschiedene Aspekte der Funktionalität der Bibliothek umfassend abdeckt, mit Zugriff auf API-Referenzen, Tutorials, Codebeispiele und bewährte Verfahren
- informativer Blog, der eine breite Palette von Themen im Zusammenhang mit E-Mail-Management, Anhängehandling und anderen relevanten Themen behandelt, mit Einblicken, Tipps und Neuigkeiten zu den neuesten Funktionen und Entwicklungen im Aspos.Email-Ökosystem
- kostenlose Apps, die darauf abzielen, das E-Mail-Management und die Produktivität für Benutzer auf verschiedenen Plattformen zu verbessern