
EML — це розширення файлу для повідомлення електронної пошти, збереженого у файлі стандартного формату MIME RFC 822, який підтримується Outlook, Outlook Express, Windows Live Mail або Thunderbird. Крім того, формат файлу EML є відкритим текстовим форматом MIME (rfc822) для зберігання електронних листів. З іншого боку, MSG — це двійковий формат складеного файлу на основі Outlook MAPI Microsoft. Крім того, формат файлу Outlook Item MSG (. msg) — це синтаксис для зберігання одного об’єкта Повідомлення, наприклад електронного листа, зустрічі, контакту, завдання тощо, у файлі.
Тож у цій статті ми збираємося обговорити кроки програмного перетворення файлів EML у формат MSG за допомогою REST API.
API обробки електронної пошти
Aspose.Email Cloud – це API на основі REST, який пропонує можливості створювати, маніпулювати та відтворювати загальні формати електронної пошти (Outlook EML, MSG, файли iCalendar і VCard) для інші підтримувані формати файлів. Ви отримуєте можливості працювати із заголовком, адресою відправника, вмістом, включеним у повідомлення, або обробляти вкладення електронної пошти, наприклад файли, фотографії, документи та багато іншого. Водночас запровадьте обробку контактних карток (Operate VCard) або обробіть Календар через iCalendar Support у своїх програмах.
Щоб полегшити роботу розробників, ми створили оболонки навколо хмарних API, щоб ви отримували всі функції прямо у своїй улюбленій IDE. Перш ніж продовжувати, рекомендуємо перейти за наведеним нижче посиланням, щоб дізнатися більше про як інсталювати Aspose.Cloud SDKs.
Перетворення EML на MSG на C#
Виконайте наведені нижче кроки, щоб виконати вашу вимогу.
- По-перше, створіть об’єкт класу EmailCloud, передавши дані ClientID і Client Secret як аргументи
- По-друге, прочитайте вихідний файл електронної пошти в екземпляр File.OpenRead і завантажте в хмарне сховище метод UploadFile(…)
- По-третє, створіть екземпляр EmailGetAsFileRequest, передаючи вхідний файл і результуючий формат
- Тепер використовуйте EmailGetAsFile API, щоб конвертувати файл EML, доступний у хмарному сховищі, у формат MSG
- Нарешті, викличте спеціальний метод, щоб зберегти отриманий файл на локальний диск за допомогою екземпляра File.Create
// Повні приклади та файли даних див
https://github.com/aspose-email-cloud/aspose-email-cloud-dotnet
// Отримайте облікові дані клієнта з https://dashboard.aspose.cloud/
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";
// створити екземпляр EmailCloud API
var emailApi = new EmailCloud(clientSecret, clientID);
// ім'я вихідного файлу EML
string name = "sample.eml";
// ім'я отриманого файлу MSG
string resultantFile = "converted.msg";
// формат отриманого файлу
string toFormat = "Msg";
try
{
// прочитати джерело EML для потокового об’єкта
using (var file = System.IO.File.OpenRead(@"C:\Users\shahbnay\Downloads\" + name))
{
// завантажити вихідний файл EML у хмарне сховище
emailApi.CloudStorage.File.UploadFile(new Aspose.Email.Cloud.Sdk.Model.UploadFileRequest(name, file));
// створити екземпляр EmailGetAsFileRequest, передавши вхідний файл і результуючий формат
var convertRequest = new EmailGetAsFileRequest(name, toFormat);
// Виконайте операцію перетворення
var response = emailApi.Email.GetAsFile(convertRequest);
// надрукувати повідомлення про успішне завершення, якщо перетворення виконано успішно
if (response != null && response.Equals("OK"))
{
// надрукувати повідомлення про успіх
Console.WriteLine("Successfully converted EML to MSG !");
Console.ReadKey();
}
// зберегти отриманий потік файлів на локальний диск
saveToDisk(response, @"C:\Users\shahbnay\Downloads\" + resultantFile);
}
}catch (Exception ex)
{
// надрукувати виняток у консолі
Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}
// спеціальний метод для збереження результату на системному диску
static void saveToDisk(Stream responseStream, String resultantFile)
{
var fileStream = File.Create(resultantFile);
responseStream.Seek(0, SeekOrigin.Begin);
responseStream.CopyTo(fileStream);
fileStream.Close();
}
Зразки файлів, використаних у наведеному вище прикладі, можна завантажити з sample.eml і converted.msg.
Якщо вам потрібно завантажити файл із локального диска та виконати перетворення, спробуйте скористатися API EmailConvert.
EML до MSG за допомогою команди cURL
Оскільки Aspose.Email Cloud розроблено відповідно до архітектури REST, тому до нього можна легко отримати доступ за допомогою команд cURL. Використовуйте термінальну програму/командний рядок для доступу до API. Тож першим кроком є створення маркера доступу JWT на основі облікових даних клієнта, указаних на інформаційній панелі Aspose.Cloud. Щоб отримати додаткові відомості, відвідайте Як отримати маркер JWT за допомогою ідентифікатора клієнта та секретного ключа клієнта.
Отримавши маркер JWT, скористайтеся такою командою, щоб перетворити файл EML, доступний у хмарному сховищі, у формат MSG і зберегти результат на локальному диску. Для цілей перетворення використовується API EmailGetAsFile.
curl -X GET "https://api.aspose.cloud/v4.0/email/as-file?fileName=sample.eml&format=Msg" \
-H "accept: multipart/form-data" \
-H "authorization: Bearer <JWT Token>" \
-o Converted.msg
Висновок
У цій статті ми обговорили можливості Aspose.Email Cloud для обробки популярних форматів електронної пошти. Зокрема, ми обговорили перетворення файлу EML у MSG за допомогою команд C# .NET і cURL. Незважаючи на це, Cloud SDK розроблено відповідно до ліцензії MIT, і ви можете завантажити повний вихідний код на GitHub.
Ми також надали пишний вигляд Cloud API, щоб ви могли перевірити API у веб-переглядачі. Крім того, якщо у вас виникнуть проблеми або у вас виникнуть додаткові запитання, зв’яжіться з нами через безкоштовний форум підтримки клієнтів.