
EML, Outlook, Outlook Express, Windows Live Mail veya Thunderbird tarafından desteklenen MIME RFC 822 standart biçiminde bir dosyaya kaydedilen bir e-posta mesajı için bir dosya uzantısıdır. Ayrıca, EML dosya biçimi, e-postaları depolamak için düz metin MIME (rfc822) dosya biçimidir. Diğer uçta, MSG, Microsoft’un Outlook MAPI’sine dayalı bir bileşik dosya ikili biçimidir. Ayrıca, Outlook Öğesi MSG (. msg) dosya biçimi, bir e-posta, bir randevu, bir kişi, bir görev vb. gibi tek bir İleti nesnesini bir dosyada depolamak için bir sözdizimidir.
Bu yazımızda REST API kullanarak EML dosyalarının MSG formatına programlı olarak nasıl dönüştürüleceğinin adımlarını ele alacağız.
E-posta İşleme API’si
Aspose.Email Cloud, yaygın e-posta biçimlerini (Outlook EML, MSG, iCalendar dosyaları ve VCard) diğer desteklenen dosya biçimleri oluşturma, düzenleme ve işleme yetenekleri sunan REST tabanlı bir API’dir. Başlık, Gönderen Adresi, mesajda yer alan İçerik ile çalışma veya dosyalar, fotoğraflar, belgeler ve çok daha fazlası gibi e-postanın eklerini işleme yeteneklerine sahip olursunuz. Aynı zamanda, uygulamalarınızda kişi kartı işlemeyi (VCard’ı Çalıştırma) uygulayın veya iCalendar Desteği aracılığıyla Takvimi işleyin.
Geliştiricilerin işini kolaylaştırmak için, Cloud API’leri etrafında sarmalayıcılar oluşturduk, böylece tüm özelliklere doğrudan favori IDE’niz içinde erişebilirsiniz. Daha fazla ilerlemeden önce, Aspose.Cloud SDK’ları nasıl kurulur hakkında daha fazla bilgi edinmek için aşağıdaki bağlantıyı ziyaret etmenizi öneririz.
EML’yi C#’ta MSG’ye dönüştürme
İhtiyacınızı karşılamak için lütfen aşağıda verilen adımları izleyin:
- Öncelikle, ClientID ve Client Secret ayrıntılarını argüman olarak geçirerek EmailCloud sınıfının bir nesnesini oluşturun
- İkinci olarak, kaynak e-posta dosyasını File.OpenRead örneğine okuyun ve bulut depolama UploadFile(…) yöntemine yükleyin
- Üçüncüsü, giriş dosyasını ve sonuç biçimini geçiren bir EmailGetAsFileRequest örneği oluşturun
- Artık Cloud depolamada bulunan EML dosyasını MSG formatına dönüştürmek için EmailGetAsFile API’sini kullanın
- Son olarak, File.Create örneğini kullanarak sonuç dosyasını yerel sürücüye kaydetmek için özel yöntemi çağırın
// Tam örnekler ve veri dosyaları için lütfen şuraya gidin:
https://github.com/aspose-email-cloud/aspose-email-cloud-dotnet
// Müşteri kimlik bilgilerini https://dashboard.aspose.cloud/ adresinden alın
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";
// EmailCloud Api'nin bir örneğini oluşturun
var emailApi = new EmailCloud(clientSecret, clientID);
// kaynak EML dosya adı
string name = "sample.eml";
// sonuçtaki MSG dosyasının adı
string resultantFile = "converted.msg";
// sonuç dosyasının biçimi
string toFormat = "Msg";
try
{
// kaynak EML'yi akış nesnesine oku
using (var file = System.IO.File.OpenRead(@"C:\Users\shahbnay\Downloads\" + name))
{
// kaynak EML dosyasını Cloud depolamaya yükleyin
emailApi.CloudStorage.File.UploadFile(new Aspose.Email.Cloud.Sdk.Model.UploadFileRequest(name, file));
// giriş dosyasını ve sonuç biçimini geçirerek EmailGetAsFileRequest örneğini oluşturun
var convertRequest = new EmailGetAsFileRequest(name, toFormat);
// Dönüştürme işlemini gerçekleştirin
var response = emailApi.Email.GetAsFile(convertRequest);
// dönüşüm başarılı olursa başarı mesajını yazdır
if (response != null && response.Equals("OK"))
{
// başarı mesajını yazdır
Console.WriteLine("Successfully converted EML to MSG !");
Console.ReadKey();
}
// sonuç dosya akışını yerel sürücüye kaydet
saveToDisk(response, @"C:\Users\shahbnay\Downloads\" + resultantFile);
}
}catch (Exception ex)
{
// istisnayı konsolda yazdır
Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}
// çıktıyı sistem sürücüsüne kaydetmek için özel yöntem
static void saveToDisk(Stream responseStream, String resultantFile)
{
var fileStream = File.Create(resultantFile);
responseStream.Seek(0, SeekOrigin.Begin);
responseStream.CopyTo(fileStream);
fileStream.Close();
}
Yukarıdaki örnekte kullanılan örnek dosyalar sample.eml ve converted.msg adreslerinden indirilebilir.
Dosyayı yerel sürücüden yüklemeniz ve dönüştürmeyi gerçekleştirmeniz gerekiyorsa lütfen EmailConvert API’sini kullanmayı deneyin.
cURL Komutunu Kullanarak EML’den MSG’ye
Aspose.Email Cloud REST mimarisine göre geliştirildiğinden, cURL komutları aracılığıyla kolayca erişilebilir. API’lere erişmek için terminal uygulamasını/komut istemini kullanın. Bu nedenle ilk adım, Aspose.Cloud panosu üzerinde belirtilen istemci kimlik bilgilerine dayalı bir JWT erişim belirteci oluşturmaktır. Daha fazla ayrıntı için lütfen İstemci Kimliği ve İstemci Gizli Anahtarı kullanılarak JWT belirteci nasıl elde edilir sayfasını ziyaret edin.
JWT belirtecini aldıktan sonra, lütfen Cloud depolamada bulunan EML dosyasını MSG biçimine dönüştürmek ve çıktıyı yerel sürücüye kaydetmek için aşağıdaki komutu kullanın. Dönüştürme amaçları için EmailGetAsFile API kullanılır.
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
Çözüm
Bu makalede, Aspose.Email Cloud’un popüler e-posta formatlarını işleme yeteneklerini ele aldık. Özellikle, EML dosyasının C# .NET ve cURL komutunu kullanarak MSG’ye dönüştürülmesini ele aldık. Bununla birlikte, Cloud SDK’ları MIT lisansına göre geliştirilmiştir ve tam kaynak kodunu GitHub üzerinden indirebilirsiniz.
Ayrıca, API’leri bir web tarayıcısı içinde test edebilmeniz için Cloud API’lerinin bir swagger görünümü’nü de sağladık. Ayrıca, herhangi bir sorunla karşılaşırsanız veya başka sorularınız varsa, lütfen ücretsiz müşteri destek forumu aracılığıyla bizimle iletişime geçmekten çekinmeyin.