- Чому витягувати зображення з електронних листів?
- Email Image Extraction API
- Витягнення зображень з ZIP за допомогою C# .NET
- Витягнення зображень електронної пошти за допомогою cURL
- Спробуйте Онлайн Витягувач Зображень Електронної Пошти
Чому необхідно витягувати зображення з електронних листів?
Електронні листи (MSG, EML) часто містять важливі візуальні елементи, такі як зображення, надіслані клієнтами, рекламні банери, вбудовані HTML-зображення та фотографії в додатках. Автоматизація витягання дозволяє вам:
- Зберігайте фотографії з електронних листів без ручних зусиль.
- Обробляти електронні листи оптом
- Скачайте вбудовані та CID-образи.
- Покращте робочі процеси для CRM, підтримки квитків, автоматизації та архівування
- Підготуйте візуальні дані для аналізу та обробки
Ця стаття відповідає на поширені запитання, такі як як зберегти фото з електронної пошти, як зберегти фотографії з електронної пошти та як завантажити зображення з електронної пошти, використовуючи .NET REST API.
Email Image Extraction API
Використовуючи GroupDocs.Parser Cloud SDK for .NET, ви можете аналізувати файли EML та MSG і витягувати всі типи зображень, які вони містять, включаючи:
- Вбудовані зображення (Base64 / CID)
- CID-referenced HTML images
- Прикріплені фотографії (JPG, PNG, GIF, BMP, TIFF)
Підтримувані формати:
- EML — стандартні файли електронної пошти RFC822.
- MSG — електронні повідомлення Microsoft Outlook.
Передумови
- Акаунт GroupDocs Cloud (Ідентифікатор клієнта та секрет клієнта).
- .NET 6.0+ встановлено.
- Visual Studio або сумісна IDE.
- Пакет NuGet:
GroupDocs.Parser-Cloud
Встановіть через NuGet
dotnet add package GroupDocs.Parser-Cloud --version 25.7.0
Витягти зображення з електронної пошти, використовуючи C# .NET
Нижче наведено повний приклад C#, який демонструє, як завантажити файл електронної пошти (EML або MSG), викликати API Images для вилучення зображень з електронної пошти та завантажити отримані фотографії локально. Це вирішує такі випадки використання, як збереження картинки з електронної пошти та завантаження фотографій з електронної пошти.
Крок 1 — Ініціалізуйте API:
var config = new Configuration("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
var parserApi = new ParserApi(config);
Крок 2 — Встановіть інформацію та параметри ZIP-файлу:
var fileInfo = new FileInfo { FilePath = "source.eml" };
var options = new ImagesOptions { FileInfo = fileInfo };
var request = new ImagesRequest(options);
tep 3 — Extract Images:
var imagesRequest = new ImagesRequest(options);
var imagesResponse = parserApi.Images(imagesRequest);
// 1. Налаштуйте клієнт API
var config = new Configuration
{
ClientId = "YOUR_CLIENT_ID",
ClientSecret = "YOUR_CLIENT_SECRET"
};
var parserApi = new ParserApi(config);
var fileApi = new FileApi(config);
// Локальні та хмарні шляхи
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. Завантажити файл електронної пошти в хмарне сховище
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. Підготуйте запит на витяг зображень
var fileInfo = new FileInfo { FilePath = remoteEmailPath, StorageName = "internal" };
var options = new ImagesOptions { FileInfo = fileInfo, OutputPath = outputFolder };
var imagesRequest = new ImagesRequest(options);
// 4. Виклик API зображень для вилучення вбудованих/прикріплених зображень
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. Завантажте витягнуті зображення з хмарного сховища до локальної папки (безпечно для macOS)
Directory.CreateDirectory(localOutputDir);
foreach (var img in imagesResponse.Images)
{
// Нормалізуйте повернений шлях і вихідну папку, щоб уникнути дублювання.
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.");
Примітки про macOS та хмарні шляхи
- Не використовуйте
Path.Combineдля створення ключів хмарного сховища. Використовуйте косу риску (/) як роздільники при складанні ключів S3/об’єктного сховища. - Використовуйте
Path.Combineлише для локальних шляхів файлової системи (збереження завантажених файлів на macOS). - Код вище нормалізує
img.Path, повернутий API, і уникає дубльованих сегментів папок, таких якextracted-email-images/extracted-email-images/....
Extract Email Images using cURL
Альтернативно, якщо ви надаєте перевагу CLI, ви можете безпосередньо викликати REST API.
Крок 1 — Генерація токена доступу Першим кроком у цьому підході є створення токена доступу JWT на основі облікових даних клієнта.
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"}"
Відповідь повертає масив витягнутих записів зображень з їхніми шляхами в хмарі; завантажте їх, використовуючи File API або підписані URL.
Спробуйте Онлайн Витягувач Зображень з Електронної Пошти
Щоб протестувати можливості REST API, не написавши жодного рядка коду, ви можете скористатися нашим безкоштовним онлайн-інструментом Email Image Extractor. Він розроблений на основі GroupDocs.Parser Cloud API і дозволяє вам зберігати фотографії з електронної пошти.

Виявлення та усунення неполадок і налагодження
Вказаний ключ не існує” — перевірте точніimg.Pathзначення, що повертаються API. Не додавайтеOutputPath`, якщо повернуті шляхи вже містять його.- Не знайдено зображень — переконайтеся, що електронний лист насправді містить підтримувані типи зображень, і перевірте наявність вкладених частин MIME.
- Великі електронні листи — для дуже великих або багатьох зображень, віддавайте перевагу виходу в хмарне сховище та пакетним завантаженням.
- Дозволи — перевірте, чи правильні облікові дані API та
StorageName(наприклад,internal).
Висновок
Ця стаття показала, як витягувати зображення з файлів електронної пошти (.eml та .msg), як зберігати фотографії з електронної пошти програмно та як завантажувати вбудовані та вкладені зображення, використовуючи GroupDocs.Parser Cloud SDK для .NET.
Схожі статті
Ми настійно рекомендуємо ознайомитися з наступними статтями, щоб дізнатися більше про:
- Витягти текст з PowerPoint на C# .NET
- Convert HTML to PDF in C# .NET
- Витягти зображення з PDF в C# .NET
Поширені запитання (FAQ)
Чи можу я витягти вбудовані фото з електронних листів? Так, API автоматично витягує вбудовані та вбудовані зображення.
Чи працює це з .msg (Outlook) файлами? Так — формати MSG та EML підтримуються.
Чи можу я витягти лише прикріплені фотографії? Так, параметри фільтрації дозволяють вилучення лише прикріплень.
Які формати зображень підтримуються? JPG, PNG, BMP, GIF, TIFF та інші поширені типи зображень.
Чи є безкоштовний пробний період? Так. Ви можете створити безкоштовний обліковий запис і отримати 150 запитів до API щомісяця.
