
EML — это расширение файла для сообщения электронной почты, сохраненного в файле в стандартном формате MIME RFC 822, поддерживаемом Outlook, Outlook Express, Windows Live Mail или Thunderbird. Кроме того, формат файла EML — это текстовый формат файла MIME (rfc822) для хранения писем. С другой стороны, MSG — это составной двоичный формат файла, основанный на Microsoft Outlook MAPI. Кроме того, формат файла Outlook Item MSG (. msg) — это синтаксис для хранения одного объекта Message, например, письма, встречи, контакта, задачи и т. д. в файле.
В этой статье мы рассмотрим шаги по программному преобразованию файлов EML в формат MSG с использованием REST API.
API обработки электронной почты
Aspose.Email Cloud — это API на основе REST, предлагающий возможности создания, обработки и преобразования распространенных форматов электронной почты (Outlook EML, MSG, файлы iCalendar и VCard) в другие поддерживаемые форматы файлов. Вы получаете возможности работы с заголовком, адресом отправителя, содержимым, включенным в сообщение, или обработки вложений электронной почты, таких как файлы, фотографии, документы и многое другое. В то же время реализуйте обработку карточек контактов (Operate VCard) или обрабатывайте календарь через поддержку iCalendar в своих приложениях.
Чтобы облегчить разработчикам задачу, мы создали оболочки вокруг API-интерфейсов Cloud, чтобы вы могли получить все функции прямо в своей любимой IDE. Прежде чем продолжить, рекомендуем перейти по следующей ссылке, чтобы узнать больше о как установить Aspose.Cloud SDK.
Конвертировать EML в MSG на C#
Для выполнения вашего требования выполните следующие шаги:
- Сначала создайте объект класса EmailCloud, передав данные ClientID и Client Secret в качестве аргументов.
- Во-вторых, считайте исходный файл электронной почты в экземпляр File.OpenRead и загрузите в облачное хранилище методом UploadFile(…)
- В-третьих, создайте экземпляр EmailGetAsFileRequest, передавая входной файл и результирующий формат.
- Теперь используйте API EmailGetAsFile для преобразования файла 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.
Мы также предоставили swagger view облачных API, чтобы вы могли тестировать API в веб-браузере. Кроме того, если у вас возникнут какие-либо проблемы или у вас появятся дополнительные вопросы, пожалуйста, свяжитесь с нами через бесплатный форум поддержки клиентов.