
Un EML es una extensión de archivo para un mensaje de correo electrónico guardado en un archivo en el formato estándar MIME RFC 822 compatible con Outlook, Outlook Express, Windows Live Mail o Thunderbird. Además, el formato de archivo EML es un formato de archivo MIME (rfc822) de texto simple para almacenar correos electrónicos. Por otro lado, MSG es un formato binario de archivo compuesto basado en Outlook MAPI de Microsoft. Además, el formato de archivo MSG de elemento de Outlook (. msg) es una sintaxis para almacenar un único objeto de mensaje, como un correo electrónico, una cita, un contacto, una tarea, etc., en un archivo.
Entonces, en este artículo, analizaremos los pasos sobre cómo convertir programáticamente archivos EML al formato MSG usando la API REST.
- API de procesamiento de correo electrónico
- Convertir EML a MSG en C#
- EML a MSG mediante el comando cURL
API de procesamiento de correo electrónico
Aspose.Email Cloud es una API basada en REST que ofrece la capacidad de crear, manipular y renderizar formatos de correo electrónico comunes (Outlook EML, MSG, archivos iCalendar y VCard) a otros formatos de archivo compatibles. Obtiene la capacidad de trabajar con encabezado, dirección del remitente, contenido incluido en el mensaje o procesar archivos adjuntos del correo electrónico como archivos, fotos, documentos y mucho más. Al mismo tiempo, implementa el procesamiento de tarjetas de contacto (Operar VCard) o procesa el Calendario a través de Compatibilidad con iCalendar en tus aplicaciones.
Para facilitar el trabajo a los desarrolladores, hemos creado contenedores en torno a las API de Cloud, de modo que puedas obtener todas las funciones directamente en tu IDE favorito. Antes de continuar, te recomendamos visitar el siguiente enlace para obtener más información sobre cómo instalar los SDK de Aspose.Cloud.
Convertir EML a MSG en C#
Siga los pasos que se indican a continuación para cumplir con su requisito:
- En primer lugar, cree un objeto de la clase EmailCloud pasando los detalles de ClientID y Client Secret como argumentos
- En segundo lugar, lea el archivo de correo electrónico de origen en la instancia File.OpenRead y cárguelo en el método UploadFile(…) de almacenamiento en la nube.
- En tercer lugar, cree una instancia de EmailGetAsFileRequest pasando el archivo de entrada y el formato resultante
- Ahora use la API EmailGetAsFile para convertir el archivo EML disponible en el almacenamiento en la nube al formato MSG
- Finalmente, llame al método personalizado para guardar el archivo resultante en la unidad local usando la instancia File.Create
// Para obtener ejemplos completos y archivos de datos, visite
https://github.com/aspose-email-cloud/aspose-email-cloud-dotnet
// Obtenga las credenciales del cliente desde https://dashboard.aspose.cloud/
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";
// crear una instancia de EmailCloud Api
var emailApi = new EmailCloud(clientSecret, clientID);
// nombre del archivo EML de origen
string name = "sample.eml";
// nombre del archivo MSG resultante
string resultantFile = "converted.msg";
// formato del archivo resultante
string toFormat = "Msg";
try
{
// Leer la fuente EML para transmitir el objeto
using (var file = System.IO.File.OpenRead(@"C:\Users\shahbnay\Downloads\" + name))
{
// Subir archivo EML de origen al almacenamiento en la nube
emailApi.CloudStorage.File.UploadFile(new Aspose.Email.Cloud.Sdk.Model.UploadFileRequest(name, file));
// Cree una instancia de EmailGetAsFileRequest pasando el archivo de entrada y el formato resultante
var convertRequest = new EmailGetAsFileRequest(name, toFormat);
// Realizar la operación de conversión
var response = emailApi.Email.GetAsFile(convertRequest);
// Imprimir mensaje de éxito si la conversión es exitosa
if (response != null && response.Equals("OK"))
{
// imprimir el mensaje de éxito
Console.WriteLine("Successfully converted EML to MSG !");
Console.ReadKey();
}
// Guarda el flujo de archivos resultante en la unidad local
saveToDisk(response, @"C:\Users\shahbnay\Downloads\" + resultantFile);
}
}catch (Exception ex)
{
// Imprime la excepción en la consola
Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}
// Método personalizado para guardar la salida en la unidad del sistema.
static void saveToDisk(Stream responseStream, String resultantFile)
{
var fileStream = File.Create(resultantFile);
responseStream.Seek(0, SeekOrigin.Begin);
responseStream.CopyTo(fileStream);
fileStream.Close();
}
Los archivos de muestra utilizados en el ejemplo anterior se pueden descargar desde sample.eml y converted.msg.
En caso de que necesite cargar el archivo desde la unidad local y realizar la conversión, intente utilizar la API EmailConvert.
EML a MSG mediante el comando cURL
Como Aspose.Email Cloud está desarrollado según la arquitectura REST, se puede acceder fácilmente a él mediante comandos cURL. Utilice la aplicación de terminal o el símbolo del sistema para acceder a las API. Por lo tanto, el primer paso es generar un token de acceso JWT basado en las credenciales del cliente especificadas en el panel de control de Aspose.Cloud. Para obtener más detalles, visite Cómo obtener un token JWT mediante un ID de cliente y una clave secreta de cliente.
Una vez que tengamos el token JWT, utilice el siguiente comando para convertir el archivo EML disponible en el almacenamiento en la nube al formato MSG y guarde el resultado en la unidad local. Para fines de conversión, se utiliza la 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
Conclusión
En este artículo, analizamos las capacidades de Aspose.Email Cloud para procesar formatos de correo electrónico populares. En concreto, analizamos la conversión del archivo EML a MSG mediante el comando C# .NET y cURL. No obstante, los SDK de Cloud se desarrollan según la licencia MIT y puedes descargar el código fuente completo que está disponible en GitHub.
También hemos proporcionado una vista panorámica de las API de Cloud para que puedas probarlas en un navegador web. Además, si tienes algún problema o alguna otra consulta, no dudes en contactarnos a través del foro de soporte al cliente gratuito.