- Warum Bilder aus E-Mails extrahieren?
- Email bildextraktions-API
- Extract Images from ZIP using C# .NET
- E-Mail bilder mit cURL extrahieren
- Versuchen Sie den Online-E-Mail bildextraktor
Warum Bilder aus E-Mails extrahieren?
E-Mails (MSG, EML) enthalten oft wichtige visuelle Elemente wie von Kunden eingereichte Bilder, Marketingbanner, integrierte HTML bilder und Fotoanhänge. Die Automatisierung der Extraktion ermöglicht es Ihnen:
- Speichern Sie Fotos aus E-Mails ohne manuellen Aufwand.
- E-Mails in großen Mengen verarbeiten
- Laden Sie Inline und CID-eingebettete Bilder herunter
- Verbessern Sie Workflows für CRM, Support-Tickets, Automatisierung und Archivierung.
- Bereiten Sie visuelle Daten zur Analyse und Verarbeitung vor.
Dieser Artikel beantwortet häufige Fragen wie z.B. wie man ein Foto aus einer E-Mail speichert, wie man E-Mail-Fotos speichert und wie man ein Bild aus einer E-Mail mit der .NET REST API herunterlädt.
Email Image Extraction API
Mit GroupDocs.Parser Cloud SDK für .NET können Sie EML und MSG Dateien analysieren und jede Art von Bild extrahieren, die sie enthalten, einschließlich:
- Inline eingebettete Bilder (Base64 / CID)
- CID-referenzierte HTML bilder
- Angefügte Fotos (JPG, PNG, GIF, BMP, TIFF)
Unterstützte Formate:
- EML — Standard-RFC822-E-Mail Dateien.
- MSG — Microsoft Outlook-E-Mail-Nachrichten.
Voraussetzungen
- Ein GroupDocs Cloud-Konto (Client-ID und Client-Secret).
- .NET 6.0+ installiert.
- Visual Studio oder kompatible IDE.
- NuGet-Paket:
GroupDocs.Parser-Cloud
Installieren über NuGet
dotnet add package GroupDocs.Parser-Cloud --version 25.7.0
Bilder aus E-Mails mit C# .NET extrahieren
Unten finden Sie ein vollständiges C#-Beispiel, das zeigt, wie man eine E-Mail-Datei (EML oder MSG) hochlädt, die Bilder-API aufruft, um Bilder aus der E-Mail zu extrahieren, und die resultierenden Fotos lokal herunterlädt. Dies löst Anwendungsfälle wie das Speichern von Bildern aus E-Mails und den Download von Fotos aus E-Mails.
Schritt 1 — API initialisieren:
var config = new Configuration("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
var parserApi = new ParserApi(config);
Schritt 2 — ZIP-Datei-Informationen und Optionen festlegen:
var fileInfo = new FileInfo { FilePath = "source.eml" };
var options = new ImagesOptions { FileInfo = fileInfo };
var request = new ImagesRequest(options);
Schritt 3 — Bilder extrahieren:
var imagesRequest = new ImagesRequest(options);
var imagesResponse = parserApi.Images(imagesRequest);
// 1. API-Client konfigurieren
var config = new Configuration
{
ClientId = "YOUR_CLIENT_ID",
ClientSecret = "YOUR_CLIENT_SECRET"
};
var parserApi = new ParserApi(config);
var fileApi = new FileApi(config);
// Lokale und Cloud-Pfade
var localEmailPath = "/Users/you/Downloads/message.eml"; // macOS example
var remoteEmailPath = "inbox/message.eml";
var outputFolder = "extracted-email-images"; // cloud output folder
var localOutputDir = "/Users/you/Downloads/extracted-email-images";
// 2. Lade die E-Mail-Datei in den Cloud-Speicher hoch
using (var fs = File.OpenRead(localEmailPath))
{
var uploadRequest = new UploadFileRequest(path: remoteEmailPath, fileContent: fs);
fileApi.UploadFile(uploadRequest);
Console.WriteLine($"Uploaded {remoteEmailPath} to cloud storage.");
}
// 3. Bereiten Sie die Anfrage zur Extraktion von Bildern vor
var fileInfo = new FileInfo { FilePath = remoteEmailPath, StorageName = "internal" };
var options = new ImagesOptions { FileInfo = fileInfo, OutputPath = outputFolder };
var imagesRequest = new ImagesRequest(options);
// 4. Rufen Sie die Bilder-API auf, um Inline-/angehängte Bilder zu extrahieren.
var imagesResponse = parserApi.Images(imagesRequest);
if (imagesResponse.Images == null || imagesResponse.Images.Count == 0)
{
Console.WriteLine("No images found inside the email.");
return;
}
Console.WriteLine($"Found {imagesResponse.Images.Count} image(s) inside the email:");
foreach (var img in imagesResponse.Images)
{
Console.WriteLine($" - {img.Path} ({img.Size} bytes) [{img.MediaType}]");
}
// 5. Geladene extrahierte Bilder aus dem Cloud-Speicher in den lokalen Ordner herunterladen (macOS-sicher)
Directory.CreateDirectory(localOutputDir);
foreach (var img in imagesResponse.Images)
{
// Normalisieren Sie den zurückgegebenen Pfad und den Ausgabeverzeichnis, um Duplikate zu vermeiden.
var returnedPath = (img.Path ?? string.Empty).Replace("\\", "/").Trim('/');
var normalizedOutputFolder = (outputFolder ?? string.Empty).Replace("\\", "/").Trim('/');
string cloudImagePath;
if (!string.IsNullOrEmpty(normalizedOutputFolder) &&
(returnedPath.StartsWith(normalizedOutputFolder + "/") || returnedPath == normalizedOutputFolder))
{
cloudImagePath = returnedPath;
}
else if (!string.IsNullOrEmpty(normalizedOutputFolder))
{
cloudImagePath = $"{normalizedOutputFolder}/{returnedPath}".Trim('/');
}
else
{
cloudImagePath = returnedPath;
}
Console.WriteLine($"Downloading from cloud path: {cloudImagePath}");
var downloadRequest = new DownloadFileRequest(path: cloudImagePath);
var responseStream = fileApi.DownloadFile(downloadRequest);
var localFileName = Path.GetFileName(returnedPath);
var localFilePath = Path.Combine(localOutputDir, localFileName);
using (var fsLocal = File.Create(localFilePath))
{
responseStream.CopyTo(fsLocal);
}
Console.WriteLine($"Downloaded: {localFilePath}");
}
Console.WriteLine("Email image extraction completed.");
Notizen zu macOS und Cloud-Pfaden
- Verwenden Sie
Path.Combinenicht, um Schlüssel für den Cloud-Speicher zu erstellen. Verwenden Sie Schrägstriche (/) als Trennzeichen, wenn Sie S3-/Objektspeicherschlüssel erstellen. - Verwenden Sie
Path.Combinenur für lokale Dateisystempfade (gespeicherte heruntergeladene Dateien auf macOS). - Der obige Code normalisiert
img.Path, das von der API zurückgegeben wird, und vermeidet doppelte Ordnersegmente wieextracted-email-images/extracted-email-images/....
Extract Email Images using cURL
Alternativ können Sie, wenn Sie CLI bevorzugen, die REST-API direkt aufrufen.
Schritt 1 — Zugriffstoken generieren Der erste Schritt in diesem Ansatz besteht darin, ein JWT-Zugriffstoken basierend auf den Client-Anmeldeinformationen zu generieren.
curl -v -X POST "https://api.groupdocs.cloud/connect/token" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET" \
-H "Content-Type: application/x-www-form-urlencoded"
*Step 2 — Extract Images from ZIP
curl -v -X POST "https://api.groupdocs.cloud/v1.0/parser/images" \
-H "accept: application/json" \
-H "authorization: Bearer {ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d "{ "FileInfo": { "FilePath": "inbox/message.eml", "StorageName": "internal" }, "OutputPath": "extracted-email-images"}"
Die Antwort gibt ein Array von extrahierten Bilddatensätzen mit ihren Cloud-Pfaden zurück; laden Sie sie mithilfe der File-API oder signierter URLs herunter.
Versuchen Sie den Online Email Image Extractor
Um die Fähigkeiten der REST API zu testen, ohne eine einzige Codezeile zu schreiben, können Sie unser kostenloses Online-Tool Email Image Extractor in Betracht ziehen. Es basiert auf der GroupDocs.Parser Cloud API und ermöglicht Ihnen das Speichern von E-Mail-Fotos.

Fehlerbehebung & Debugging
Der angegebene Schlüssel existiert nicht— überprüfen Sie die genauenimg.Path-Werte, die von der API zurückgegeben werden. Fügen SieOutputPathnicht hinzu, wenn die zurückgegebenen Pfade es bereits enthalten.- Keine Bilder gefunden – stellen Sie sicher, dass die E-Mail tatsächlich unterstützte Bildtypen enthält, und überprüfen Sie verschachtelte MIME-Teile.
- Große E-Mails — Bei sehr großen oder vielen Bildern bevorzugen Sie die Cloud-Speicher-Ausgabe und Batch-Downloads.
- Berechtigungen — überprüfen Sie, ob die API-Anmeldeinformationen und
StorageName(z. B.internal) korrekt sind.
Schlussfolgerung
Dieser Artikel zeigte, wie man Bilder aus E-Mail Dateien (.eml und .msg) extrahiert, wie man Fotos aus einer E-Mail programmgesteuert speichert und wie man inline und angehängte Bilder mit dem GroupDocs.Parser Cloud SDK für .NET herunterlädt.
Verwandte Artikel
Wir empfehlen dringend, die folgenden Artikel zu besuchen, um mehr über Folgendes zu erfahren:
- Extrahieren Sie Text aus PowerPoint in C# .NET
- Convert HTML to PDF in C# .NET
- Extract Images from PDF in C# .NET
Häufig gestellte Fragen (FAQs)
Kann ich Inline-Fotos aus E-Mails extrahieren? Ja, die API extrahiert automatisch Inline und eingebettete Bilder.
Funktioniert das mit .msg (Outlook) Dateien? Ja — MSG und EML-Formate werden unterstützt.
Kann ich nur angehängte Fotos extrahieren? Ja, die Filteroptionen ermöglichen eine Extraktion nur für Attachments.
Welche Bildformate werden unterstützt? JPG, PNG, BMP, GIF, TIFF und andere gängige Bildtypen.
Gibt es eine kostenlose Testphase? Ja. Sie können ein kostenloses Konto erstellen und 150 monatliche API-Aufrufe erhalten.
