
Un EML è un’estensione di file per un messaggio di posta elettronica salvato in un file nel formato standard MIME RFC 822 supportato da Outlook, Outlook Express, Windows Live Mail o Thunderbird. Inoltre, il formato di file EML è un formato di file MIME in chiaro (rfc822) per l’archiviazione di e-mail. D’altra parte, MSG è un formato binario di file composto basato su Outlook MAPI di Microsoft. Inoltre, il formato di file Outlook Item MSG (. msg) è una sintassi per l’archiviazione di un singolo oggetto Messaggio, come un’e-mail, un appuntamento, un contatto, un’attività e così via, in un file.
In questo articolo esamineremo i passaggi per convertire a livello di programmazione i file EML in formato MSG utilizzando la REST API.
API di elaborazione e-mail
Aspose.Email Cloud è un’API basata su REST che offre le capacità di creare, manipolare e rendere formati di posta elettronica comuni (Outlook EML, MSG, file iCalendar e VCard) in altri formati di file supportati. Ottieni le capacità di lavorare con intestazione, indirizzo mittente, contenuto incluso nel messaggio o elaborare allegati di posta elettronica come file, foto, documenti e molto altro. Allo stesso tempo, implementa l’elaborazione delle schede di contatto (Operate VCard) o elabora il calendario tramite iCalendar Support nelle tue applicazioni.
Per facilitare gli sviluppatori, abbiamo creato wrapper attorno alle API Cloud, in modo che tu possa ottenere tutte le funzionalità direttamente nel tuo IDE preferito. Prima di procedere oltre, ti consigliamo di visitare il seguente link per saperne di più su come installare gli SDK Aspose.Cloud.
Convertire EML in MSG in C#
Per soddisfare la tua richiesta, segui i passaggi indicati di seguito:
- Innanzitutto, crea un oggetto della classe EmailCloud passando i dettagli ClientID e Client Secret come argomenti
- In secondo luogo, leggere il file di posta elettronica di origine nell’istanza File.OpenRead e caricarlo nell’archiviazione cloud tramite il metodo UploadFile(…)
- In terzo luogo, creare un’istanza di EmailGetAsFileRequest passando il file di input e il formato risultante
- Ora usa l’API EmailGetAsFile per convertire il file EML disponibile nell’archiviazione cloud nel formato MSG
- Infine, chiama il metodo personalizzato per salvare il file risultante sull’unità locale utilizzando l’istanza File.Create
// Per esempi completi e file di dati, visitare
https://github.com/aspose-email-cloud/aspose-email-cloud-dotnet
// Ottieni le credenziali del cliente da https://dashboard.aspose.cloud/
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";
// creare un'istanza di EmailCloud Api
var emailApi = new EmailCloud(clientSecret, clientID);
// nome del file EML di origine
string name = "sample.eml";
// nome del file MSG risultante
string resultantFile = "converted.msg";
// formato del file risultante
string toFormat = "Msg";
try
{
// leggere la sorgente EML per trasmettere l'oggetto
using (var file = System.IO.File.OpenRead(@"C:\Users\shahbnay\Downloads\" + name))
{
// carica il file EML di origine sullo storage Cloud
emailApi.CloudStorage.File.UploadFile(new Aspose.Email.Cloud.Sdk.Model.UploadFileRequest(name, file));
// crea un'istanza di EmailGetAsFileRequest passando il file di input e il formato risultante
var convertRequest = new EmailGetAsFileRequest(name, toFormat);
// Eseguire l'operazione di conversione
var response = emailApi.Email.GetAsFile(convertRequest);
// stampa messaggio di successo se la conversione è riuscita
if (response != null && response.Equals("OK"))
{
// stampa il messaggio di successo
Console.WriteLine("Successfully converted EML to MSG !");
Console.ReadKey();
}
// salva il flusso di file risultante sull'unità locale
saveToDisk(response, @"C:\Users\shahbnay\Downloads\" + resultantFile);
}
}catch (Exception ex)
{
// stampa l'eccezione nella console
Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}
// metodo personalizzato per salvare l'output sull'unità di sistema
static void saveToDisk(Stream responseStream, String resultantFile)
{
var fileStream = File.Create(resultantFile);
responseStream.Seek(0, SeekOrigin.Begin);
responseStream.CopyTo(fileStream);
fileStream.Close();
}
I file di esempio utilizzati nell’esempio precedente possono essere scaricati da sample.eml e converted.msg.
Nel caso in cui sia necessario caricare il file dall’unità locale ed eseguire la conversione, provare a utilizzare l’API EmailConvert.
Da EML a MSG tramite comando cURL
Poiché Aspose.Email Cloud è sviluppato secondo l’architettura REST, è facilmente accessibile tramite comandi cURL. Utilizzare l’applicazione terminale/prompt dei comandi per accedere alle API. Quindi il primo passaggio è generare un token di accesso JWT basato sulle credenziali client specificate su Aspose.Cloud dashboard. Per ulteriori dettagli, visitare Come ottenere un token JWT utilizzando un ID client e una chiave segreta client.
Una volta ottenuto il token JWT, utilizzare il seguente comando per convertire il file EML disponibile nell’archiviazione Cloud in formato MSG e salvare l’output sull’unità locale. Per scopi di conversione, viene utilizzata l’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
Conclusione
In questo articolo, abbiamo discusso le capacità di Aspose.Email Cloud per l’elaborazione di formati di posta elettronica popolari. In particolare, abbiamo discusso la conversione del file EML in MSG utilizzando il comando C# .NET e cURL. Tuttavia, gli SDK Cloud sono sviluppati secondo la licenza MIT e puoi scaricare il codice sorgente completo disponibile su GitHub.
Abbiamo anche fornito una swagger view delle API Cloud in modo che tu possa testare le API all’interno di un browser web. Inoltre, se riscontri problemi o hai altre domande, non esitare a contattarci tramite il forum di assistenza clienti gratuito.