C# .NET ile e-postayı HTML'ye dönüştür

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ü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:

MSG dosyası görünümü

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

HTML dosyası görünümü

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:

  1. İ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.
  2. MailMessage.Load yöntemini kullanarak MSG veya EML dosyasını yükler.
  3. HtmlSaveOptions nesnesi oluşturur ve ResourceRenderingMode özelliğini SaveToFile olarak ayarlar.
  4. HtmlSaveOptions‘in SaveResourceHandler olayına bir delege tanımlar.
  5. Delege içinde kaynaklar için hedef dizin oluşturur, eğer zaten mevcut değilse.
  6. Her bir kaynağı, içeriğin türüne dayalı olarak delege içinde bir dosya adı ile bir dosyaya kaydeder.
  7. 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.

Metin düzenleyicisinde HTML içindeki resim

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:

  1. E-posta dosyası ve HTML çıktısı için kaynak ve hedef yollarını tanımlar.
  2. MailMessage.Load yöntemini kullanarak MSG veya EML dosyasını yükler.
  3. 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.
  4. HtmlSaveOptions örneğini, resimleri de dahil olmak üzere kaynakları doğrudan HTML’ye gömmek için yapılandırır.
  5. 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:

Metin başlığı

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.

Ayrıca Bakınız