
Microsoft Outlook ve diğer popüler e-posta istemcileri standart biçim olarak EML(MIME RFC 822 standardı) kullanır. EML, elektronik posta veya e-postanın kısaltmasıdır. Benzer şekilde, elektronik posta iletileri için İnternet İleti Biçimi protokolünde bir dosyaya kaydedilen bir e-posta iletisinin dosya uzantısıdır. EML dosyaları genellikle ana ileti gövdesi, başlıklar ve köprü metinleri ve ekler için düz ASCII metni içerir. Ancak, EML biçimiyle ilişkili bir tehdit, bunun bir kimlik avı e-postası olabilmesi ve ekin şunlardan biri olabilmesidir: Eki açarsanız makinenize kötü amaçlı yazılım bulaştırabilir.
Ayrıca, bu dosyaların çevrimdışı bir kopyasını kaydedersek, kötü amaçlı yazılım bunları kolayca etkileyebilir ve veriler kaybolabilir. Ayrıca, EML dosyalarını açmak için desteklenen bir uygulamaya ihtiyacımız var (Microsoft Outlook 365, Microsoft Windows Mail, Mozilla Thunderbird, vb.).Bu nedenle önleyici bir önlem, MHT biçimine dönüştürülmesi olabilir.
Ücretsiz E-posta İşleme API’si
Aspose.Email Cloud, popüler E-posta formatlarını diğer desteklenen formatlara oluşturma, düzenleme ve dönüştürme yetenekleri sunan ödüllü API’mizdir. Bu nedenle, OAuth’u destekleyen kendi bulut tabanlı e-posta yönetim çözümünüzü oluşturun ve eklerle veya eksiz basit veya MIME e-posta mesajları gönderin. Windows, Linux, macOS ve Masaüstü, Mobil, Web, hibrit vb. gibi herhangi bir uygulama türünde API’ye erişin.
API’yi bir programlama dili içinde doğrudan kullanmak için lütfen Cloud SDK’nın etrafında bir sarmalayıcı olan dil-özgü Cloud SDK’mızı kullanmayı deneyin. Bu makalede, Aspose.Email Cloud SDK for .NET kullanarak EML dosyalarının MHT formatına dönüştürülmesine odaklanacağız. SDK’yı kullanmak için desteklenen (veya desteklenenlerle uyumlu).NET çerçevelerinden birine sahip olmanız gerekir:
- .NETFramework 2.0
- .NETFramework 4.5.2
- .NETStandard 2.0
- Tek Android 6.0
- Xamarin.iOS 1.0
- Xamarin.Mac 2.0
Kurulum
Cloud SDK’yı kullanmak için ilk adım kurulumudur. NuGet ve GitHub‘dan indirilebilir. NuGet için kurulumu gerçekleştirmek üzere lütfen terminal penceresinde aşağıdaki komutu yürütün:
nuget install Aspose.Email-Cloud
.NET CLI kullanırken:
dotnet add package Aspose.Email-Cloud
Visual Studio kullanıyorsanız, paket Paket Yöneticisi Konsolu kullanılarak da yüklenebilir. Lütfen aşağıdaki komutu çalıştırın:
PM> Install-Package Aspose.Email-Cloud

NuGet Paket Yöneticisi – Visual Studio
Bir diğer kolay yaklaşım ise Visual Studio IDE içindeki NuGet Paket Yöneticisi aracılığıyla SDK’yı kurmaktır.
- Çözüm Gezgini’ni açın.
- Projeyi genişletin ve çözümünüz içindeki Paketler klasörüne sağ tıklayın.
- NuGet Paketlerini Yönet… seçeneğini seçin
- Gözat sekmesine tıklayın ve “Aspose.Email-Cloud”u arayın
- Aspose.Email-Cloud paketine tıklayın, sağ sekmede uygun sürümü seçin ve Paket Ekle düğmesine tıklayın

Cloud Hesap Aboneliği
API’lerimize yalnızca yetkili kişiler erişebilir çünkü bulut depolama alanında depolanan verilere Cloud API’leri aracılığıyla erişilebilir. Abonelik ücretsizdir ve önceden ödeme ayrıntıları gerekmez. 150’ye kadar ücretsiz belge işleme işlemi gerçekleştirin. Dolayısıyla API’nin yeteneklerinden memnun kaldığınızda, API çağrısı başına 0,005 ABD Doları kadar düşük olabilen bir lisans aboneliğini tercih etmeyi düşünebilirsiniz. Daha fazla ayrıntı için lütfen Fiyatlandırma adresini ziyaret edin.
Şimdi Aspose.Cloud panosunu ziyaret ederek hesap oluşturma işlemine devam edin. Kredi kartı veya başka ödeme bilgileri gerekmez. GitHub veya Google hesabınız varsa, sadece Kaydolun veya yeni hesap oluştur düğmesine tıklayın ve gerekli bilgileri sağlayın. Şimdi kimlik bilgilerini kullanarak panoya giriş yapın ve panodan Uygulamalar bölümünü genişletin ve İstemci Kimliği ve İstemci Gizli Bilgileri ayrıntılarını görmek için İstemci Kimlik Bilgileri bölümüne doğru aşağı kaydırın.

Resim 3:- Aspose.Cloud panosundaki İstemci Kimlik Bilgileri.
C#‘da EML’den MHT’ye
EML dosyasını C# .NET kullanarak MHT formatına dönüştürmek için lütfen aşağıda verilen adımları izleyin.
- İlk adım, ClientID ve Client Secret ayrıntılarını argüman olarak geçirerek EmailCloud sınıfının bir nesnesini oluşturmaktır
- İkinci olarak, kaynak e-posta dosyasını File.OpenRead örneğine okuyun
- Üçüncüsü, giriş dosya biçimini, sonuç dosya biçimini ve giriş EML dosyasını tutan akış nesnesini geçirirken bir EmailConvertRequest örneği oluşturun
- Şimdi dönüştürme işlemini başlatmak için Email.Convert(…) metodunu çağırı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 MHT dosyasının adı
string resultantFile = "converted.mht";
// giriş e-posta dosyasının biçimi
string fromFormat = "eml";
// sonuç dosyasının biçimi
string toFormat = "Mhtml";
try
{
// kaynak EML'yi akış nesnesine oku
using (var file = System.IO.File.OpenRead(@"C:\Users\shahbnay\Downloads\" + name))
{
// Giriş, çıktı biçimleri ve dosya akışını ileten EmailConvert istek örneği oluşturun
var convertRequest = new EmailConvertRequest(fromFormat, toFormat, file);
// Dönüştürme işlemini gerçekleştirin
var response = emailApi.Email.Convert(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 MHT !");
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();
}

Resim 4:- EML’den MHT’ye dönüştürme önizlemesi.
Yukarıdaki örnekte kullanılan dosyalar sample.eml ve converted.mht adreslerinden indirilebilir.
cURL kullanarak EML’yi MHT’ye dönüştürme
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 dashboard üzerinden belirtilen istemci kimlik bilgilerine dayalı bir JWT erişim belirteci oluşturmaktır. Lütfen JWT belirtecini oluşturmak için aşağıdaki komutu yürütün.
curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=4db2f826-bf9c-42e7-8b2a-8cbca2d15553&client_secret=d757548a9f2558c39c2feebdf85b4c44" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
Şimdi, Cloud depolamada halihazırda mevcut olan .eml dosyalarını MHTML formatına dönüştürmek için cURL komutunu kullanmanın adımlarını tartışacağız. Çıktı, -o parametresi kullanılarak sisteme kaydedilir.
curl -X GET "https://api.aspose.cloud/v4.0/email/as-file?fileName=sample.eml&format=Mhtml" \
-H "accept: multipart/form-data" \
-H "authorization: Bearer <JWT Token>" \
-o resultant.mht
Yerel sürücünüzden yüklenecek .eml dosyasının dönüşümünü gerçekleştirmeniz gerekirse, lütfen aşağıdaki cURL komutunu kullanmayı deneyin:
curl -X PUT "https://api.aspose.cloud/v4.0/email/convert?fromFormat=Eml&toFormat=Mhtml" \
-H "accept: multipart/form-data" \
-H "authorization: Bearer <JWT Token>" \
-H "Content-Type: multipart/form-data" \
-d @sample.eml \
-o converted.mht
Çözüm
Bu makalede, popüler e-posta formatlarının işlenmesi için Aspose.Email Cloud‘un özelliklerini vurguladık. API, e-posta mesajlarına kırmızı bayraklar uygulamak, e-posta ekleri uygulamak ve e-posta eklerini indirmek ve çok daha fazlası için e-posta işleme uygulamaları oluşturmanıza olanak tanır. EML dosyalarının C# .NET ve cURL komutlarını kullanarak MHT’ye nasıl dönüştürüleceği adımlarını ele aldık. Ayrıca, .NET Cloud SDK, MIT lisansına göre geliştirilmiştir. Bunları tamamen ücretsiz olarak indirin ve özelleştirin. Tam kaynak kodu GitHub üzerinden edinilebilir.
Ayrıca, API’leri bir web tarayıcısı içinde test edebilmeniz için Cloud API’lerinin swagger view‘sını da 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.
İlgili Makaleler
Daha fazla bilgi edinmek için aşağıdaki bağlantıları da ziyaret etmenizi öneririz: