
HTML yaygın olarak kullanılan ve masaüstü bilgisayarlar ile mobil cihazlar dahil olmak üzere geniş bir platform ve web tarayıcısı yelpazesinde görüntülenebilen erişilebilir bir formattır. Buna karşın, EML ve MSG dosyalarının görüntülenmesi için belirli yazılımlar veya e-posta istemcileri gerekebilir; bu da zamanla erişimlerini ve görünümünü zorlaştırabilir. Bu nedenle, MSG veya EML dosyalarını HTML’ye dönüştürmek, uyumlu e-posta istemcileri veya yazılımları olmayabilecek alıcılar için daha kolay hale getirir.
Ayrıca, HTML dosyaları arşivlemesi daha kolaydır ve arama yapılabilir, indekslenmiş bir formatta kalır.
Bu makalede, C# kullanarak MSG veya EML dosyalarını HTML formatına hızlı ve kolay bir şekilde dönüştürmek için bir algoritma sunulmaktadır. Güvenilir yöntemimiz, gömülü resimler de dahil olmak üzere e-posta içeriğinin tamamen korunmasını garanti eder. Bu, dönüşüm süreci boyunca e-postanın bütünlüğünün korunmasını sağlar.
Makale aşağıdaki konuları kapsamaktadır:
- C# EML/MSG dosyalarını HTML’ye dönüştürme API’si
- EML/MSG dosyalarını HTML’ye dönüştürme, resimleri ayrı kaydetme
- EML/MSG dosyalarını HTML’ye dönüştürme, resimleri HTML içinde kaydetme
- Başlık ile HTML kaydetme
C# EML/MSG dosyalarını HTML’ye dönüştürme API’si
EML/MSG dosyalarını HTML’ye dönüştürmek için Aspose.Email for .NET kullanacağız. Bu, e-postaları işlemenizi ve Thunderbird, Outlook gibi popüler e-posta istemcilerinin dosya formatlarıyla çalışmanızı sağlayan bir e-posta işleme API’sidir. API’nin DLL’sini indirin veya aşağıdaki komutu kullanarak NuGet üzerinden yükleyin:
PM> Install-Package Aspose.Email
EML/MSG dosyalarını HTML’ye dönüştürme, resimleri ayrı kaydetme
Tipik bir MSG dosyası aşağıdaki görünüme sahiptir:

API’miz ile cihazınızdaki herhangi bir dizini ayarlayabilir ve hedef HTML dosyasını resimlerle ayrı bir klasöre kaydedebilirsiniz:

Aşağıdaki kod örneğini kullanarak bir MSG veya EML formatındaki e-posta mesajını, hedef dizine kaydedilen resimlerle birlikte HTML dosyasına dönüştürün. Kod, aşağıdaki adımları gerçekleştirir:
- İlk olarak, kaynak MSG/EML dosyasının ve HTML dosyasının kaynak ve hedef yollarını, ayrıca kaynaklar için hedef dizini belirtir.
- MailMessage.Load yöntemini kullanarak MSG veya EML dosyasını yükler.
- HtmlSaveOptions nesnesi oluşturur ve ResourceRenderingMode özelliğini SaveToFile olarak ayarlar.
- HtmlSaveOptions‘in SaveResourceHandler olayına bir delege tanımlar.
- Delege içinde kaynaklar için hedef dizin oluşturur, eğer zaten mevcut değilse.
- Her bir kaynağı, içeriğin türüne dayalı olarak delege içinde bir dosya adı ile bir dosyaya kaydeder.
- MailMessage örneğinin Save yöntemini çağırır, hedef HTML dosya adını ve e-postayı HTML formatında kaydetmek için HtmlSaveOptions örneğini geçirir.
// MSG or EML filename | |
var msgFileName = Path.Combine(sourcePath, "A Day in the Park.msg"); | |
// target HTML | |
var htmlFileName = Path.Combine(targetPath, "A Day in the Park.html"); | |
// target directory to save images | |
var resourceDir = Path.Combine(targetPath, "A Day in the Park"); | |
// Load MSG or EML | |
var msg = MailMessage.Load(msgFileName); | |
// Create HTML save options | |
var htmlSaveOptions = new HtmlSaveOptions | |
{ | |
ResourceRenderingMode = ResourceRenderingMode.SaveToFile | |
}; | |
htmlSaveOptions.SaveResourceHandler += | |
(AttachmentBase attachment, out string resourceFileName) => | |
{ | |
if (!Directory.Exists(resourceDir)) | |
{ | |
Directory.CreateDirectory(resourceDir); | |
} | |
resourceFileName = Path.Combine(resourceDir, attachment.ContentType.Name); | |
attachment.Save(resourceFileName); | |
}; | |
msg.Save(htmlFileName, htmlSaveOptions); |
EML/MSG dosyalarını HTML’ye dönüştürme, resimleri HTML içinde kaydetme
Bazen EML/MSG dosyalarını, gömülü resimleri HTML içinde tutarak dönüştürmeyi tercih edebilirsiniz.

Aşağıdaki kod parçası, bir MSG veya EML dosyasını C#’ta HTML formatına dönüştürmenin ve resimleri HTML içinde kaydetmenin nasıl olduğunu göstermektedir. Kod, aşağıdaki adımları gerçekleştirir:
- E-posta dosyası ve HTML çıktısı için kaynak ve hedef yollarını tanımlar.
- MailMessage.Load yöntemini kullanarak MSG veya EML dosyasını yükler.
- E-postanın HTML olarak nasıl kaydedileceğini yapılandırmanızı sağlayan HtmlSaveOptions sınıfının yeni bir örneğini oluşturur.
- HtmlSaveOptions örneğini, resimleri de dahil olmak üzere kaynakları doğrudan HTML’ye gömmek için yapılandırır.
- MailMessage örneğinin Save yöntemini çağırır, hedef HTML dosya adını ve e-postayı HTML formatında kaydetmek için HtmlSaveOptions örneğini geçirir.
// MSG or EML filename | |
var msgFileName = Path.Combine(sourcePath, "A Day in the Park.msg"); | |
// target HTML | |
var htmlFileName = Path.Combine(targetPath, "A Day in the Park.html"); | |
// Load MSG or EML | |
var msg = MailMessage.Load(msgFileName); | |
// Create HTML save options | |
var htmlSaveOptions = new HtmlSaveOptions | |
{ | |
ResourceRenderingMode = ResourceRenderingMode.EmbedIntoHtml | |
}; | |
msg.Save(htmlFileName, htmlSaveOptions); |
Başlık ile HTML kaydetme
Opsiyonel bir varyant olarak, başlık ile bir HTML kaydedebilirsiniz. Aşağıdaki kod parçası, C#’ta başlık ile bir HTML kaydetmenin nasıl yapılacağını göstermektedir:
// Create HTML save options | |
var htmlSaveOptions = new HtmlSaveOptions | |
{ | |
ResourceRenderingMode = ResourceRenderingMode.EmbedIntoHtml, | |
HtmlFormatOptions = HtmlFormatOptions.WriteHeader | |
}; |
Sonuç olarak, hedef HTML’ye bir metin başlığı eklenecektir:

Sonuç
Özetlemek gerekirse, bu makaleden HTML formatının dosyalarınızı arşivleme ve yönetme konusundaki kolaylığını ve C# kullanarak EML veya MSG’den dönüşüm yapmayı öğrendiniz. Dönüşüm işleminin ne kadar hızlı ve kolay olduğunu birkaç satır kod ile görebilirsiniz. Herhangi bir sorunuz olursa, lütfen ücretsiz destek forumumuza yazmaktan çekinmeyin. Aspose.Email for .NET hakkında daha fazla bilgi edinmek ve özellikleri ile imkanları hakkında bilgi sahibi olmak için dokümantasyonumuza göz atabilirsiniz.