
Um EML é uma extensão de arquivo para uma mensagem de e-mail salva em um arquivo no formato padrão MIME RFC 822 suportado pelo Outlook, Outlook Express, Windows Live Mail ou Thunderbird. Além disso, o formato de arquivo EML é um formato de arquivo MIME (rfc822) de texto simples para armazenar e-mails. Por outro lado, MSG é um formato binário de arquivo composto baseado no Outlook MAPI da Microsoft. Além disso, o formato de arquivo MSG (. msg) do Outlook Item é uma sintaxe para armazenar um único objeto Message, como um e-mail, um compromisso, um contato, uma tarefa e assim por diante, em um arquivo.
Então, neste artigo, vamos discutir as etapas sobre como converter programaticamente arquivos EML para o formato MSG usando a API REST.
API de processamento de e-mail
Aspose.Email Cloud é uma API baseada em REST que oferece os recursos para criar, manipular e renderizar formatos de e-mail comuns (Outlook EML, MSG, arquivos iCalendar e VCard) para outros formatos de arquivo suportados. Você obtém os recursos para trabalhar com Cabeçalho, Endereço do Remetente, Conteúdo incluído na mensagem ou processar anexos de e-mail como arquivos, fotos, documentos e muito mais. Ao mesmo tempo, implemente o processamento de cartões de contato (Operar VCard) ou processe o Calendário por meio do Suporte iCalendar em seus aplicativos.
Para facilitar os desenvolvedores, criamos wrappers em torno de Cloud APIs, para que você tenha todos os recursos diretamente em seu IDE favorito. Antes de prosseguir, recomendamos visitar o link a seguir para saber mais sobre como instalar Aspose.Cloud SDKs.
Converter EML para MSG em C#
Siga os passos abaixo para atender sua necessidade:
- Primeiro, crie um objeto da classe EmailCloud passando os detalhes do ClientID e do Client Secret como argumentos
- Em segundo lugar, leia o arquivo de e-mail de origem para a instância File.OpenRead e carregue no armazenamento em nuvem, método UploadFile(…)
- Em terceiro lugar, crie uma instância de EmailGetAsFileRequest passando o arquivo de entrada e o formato resultante
- Agora use a API EmailGetAsFile para converter o arquivo EML disponível no armazenamento em nuvem para o formato MSG
- Por fim, chame o método personalizado para salvar o arquivo resultante na unidade local usando a instância File.Create
// Para exemplos completos e arquivos de dados, acesse
https://github.com/aspose-email-cloud/aspose-email-cloud-dotnet
// Obtenha credenciais do cliente em https://dashboard.aspose.cloud/
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";
// crie uma instância da API EmailCloud
var emailApi = new EmailCloud(clientSecret, clientID);
// nome do arquivo EML de origem
string name = "sample.eml";
// nome do arquivo MSG resultante
string resultantFile = "converted.msg";
// formato do arquivo resultante
string toFormat = "Msg";
try
{
// leia o sourcec EML para transmitir objeto
using (var file = System.IO.File.OpenRead(@"C:\Users\shahbnay\Downloads\" + name))
{
// carregar arquivo EML de origem para armazenamento em nuvem
emailApi.CloudStorage.File.UploadFile(new Aspose.Email.Cloud.Sdk.Model.UploadFileRequest(name, file));
// crie uma instância EmailGetAsFileRequest passando o arquivo de entrada e o formato resultante
var convertRequest = new EmailGetAsFileRequest(name, toFormat);
// Executar a operação de conversão
var response = emailApi.Email.GetAsFile(convertRequest);
// imprimir mensagem de sucesso se a conversão for bem-sucedida
if (response != null && response.Equals("OK"))
{
// imprimir a mensagem de sucesso
Console.WriteLine("Successfully converted EML to MSG !");
Console.ReadKey();
}
// salve o fluxo de arquivo resultante na unidade local
saveToDisk(response, @"C:\Users\shahbnay\Downloads\" + resultantFile);
}
}catch (Exception ex)
{
// imprima a exceção no console
Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}
// método personalizado para salvar a saída na unidade do sistema
static void saveToDisk(Stream responseStream, String resultantFile)
{
var fileStream = File.Create(resultantFile);
responseStream.Seek(0, SeekOrigin.Begin);
responseStream.CopyTo(fileStream);
fileStream.Close();
}
Os arquivos de amostra usados no exemplo acima podem ser baixados de sample.eml e converted.msg.
Caso você precise carregar o arquivo da unidade local e realizar a conversão, tente usar a API EmailConvert.
EML para MSG usando o comando cURL
Como Aspose.Email Cloud é desenvolvido de acordo com a arquitetura REST, ele pode ser facilmente acessado por meio de comandos cURL. Use o aplicativo de terminal/prompt de comando para acessar as APIs. Portanto, a primeira etapa é gerar um token de acesso JWT com base nas credenciais do cliente especificadas no painel Aspose.Cloud. Para obter mais detalhes, visite Como obter um token JWT usando uma ID do cliente e uma chave de segredo do cliente.
Assim que tivermos o token JWT, use o comando a seguir para converter o arquivo EML disponível no armazenamento em nuvem para o formato MSG e salvar a saída na unidade local. Para fins de conversão, a API EmailGetAsFile é usada.
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
Conclusão
Neste artigo, discutimos os recursos do Aspose.Email Cloud para processar formatos de e-mail populares. Especificamente, discutimos a conversão do arquivo EML para MSG usando o comando C# .NET e cURL. No entanto, os Cloud SDKs são desenvolvidos de acordo com a licença MIT e você pode baixar o código-fonte completo disponível em GitHub.
Também fornecemos uma visão swagger de APIs de nuvem para que você possa testar as APIs em um navegador da web. Além disso, se você encontrar algum problema ou tiver alguma dúvida, sinta-se à vontade para entrar em contato conosco por meio do fórum de suporte ao cliente gratuito.