1. Giriş

GroupDocs.Viewer for .NET kütüphanesi, e‑posta mesajını herhangi popüler formatta içe aktarmanıza, HTML, PNG, JPEG ve PDF olarak render etmenize ve ayrıca gerçek render işlemi yapmadan temel e‑posta mesajı özelliklerini çıkarmanıza olanak tanır.

Aslında, GroupDocs.Viewer ile e‑posta mesajlarıyla çalışırken kullanıcıların iki e‑posta‑özel tipine dikkat etmeleri gerekir:

  • Options.EmailOptions sınıfı – mesajın nasıl render edileceğini (sayfa boyutu, tarih formatı, alanlar vb.) kontrol etmenizi sağlar.
  • Results.MailMessageViewInfo sınıfı — GetViewInfo() (GetViewInfo()) metodunu çağırdıktan sonra GroupDocs.Viewer tarafından üretilir ve yüklenen e‑posta mesajı hakkında meta verileri tutar.

Aşağıda, e‑posta mesajlarını nasıl render edeceğinizi ve meta verilerini nasıl alacağınızı gösteren çok hızlı bir kılavuz bulabilirsiniz.


2. Bir e‑posta mesajını yükleyin ve tüm çıktı formatlarına render edin

Aşağıdaki çok kısa kod örneği, “sample.eml” adlı giriş e‑posta mesajını Viewer sınıfının bir örneğine yükleyip ardından 4 desteklenen çıktı formatına (HTML, PDF, PNG ve JPEG) render etmeyi gösterir. Başlangıçta tüm 4 view option sınıfı örneklenir, ardından “sample.eml” dosya yoluyla Viewer örneğine yüklenir ve son olarak 4 kez Viewer.View() çağrısı yapılır.

using GroupDocs.Viewer;
using GroupDocs.Viewer.Options;


HtmlViewOptions htmlOptions = HtmlViewOptions.ForEmbeddedResources("html-page{0}.html");
PdfViewOptions pdfOptions = new PdfViewOptions("Output.pdf");
PngViewOptions pngOptions = new PngViewOptions("image-page{0}.png");
JpgViewOptions jpegOptions = new JpgViewOptions("image-page{0}.jpeg");

using (Viewer viewer = new Viewer("sample.eml"))
{
    viewer.View(htmlOptions);
    viewer.View(pdfOptions);
    viewer.View(pngOptions);
    viewer.View(jpegOptions);
}

3. Render için e‑posta seçeneklerini ayarlama

Yukarıdaki örnek, tüm seçeneklerin varsayılan değerlerine ayarlandığı bir render gösterir. Ancak, bir EmailOptions sınıfı vardır ve bu sınıf, tüm 4 view option (HtmlViewOptions, PdfViewOptions, PngViewOptions, JpgViewOptions) içinde EmailOptions özelliği aracılığıyla bulunur. EmailOptions sınıfının bir örneğini manuel olarak oluşturup view option’a atamanıza gerek yoktur — bu zaten yapılmıştır, kullanıcı sadece gerekirse özellik değerlerini ayarlamalıdır.

EmailOptions sınıfında aşağıda açıklanan birkaç özellik bulunur.

3.1. Sayfa boyutu

Enum PageSize çıktı sayfasının boyutunu kontrol eder. Varsayılan olarak Unspecified – GroupDocs.Viewer en uygun boyutu ayarlar. Örneğin aşağıdaki şekilde ayarlanabilir:

PdfViewOptions pdfOptions = new PdfViewOptions("Output.pdf");
pdfOptions.EmailOptions.PageSize = PageSize.A1;

3.2. Tarih ve saat formatı ve saat dilimi

E‑posta mesajlarının genellikle bir “Gönderildi” tarihi vardır. DateTimeFormat özelliği, bu tarih‑saat değerinin nasıl biçimlendirileceğini kontrol eder, TimeZoneOffset ise bu tarih‑saat değerine pozitif ya da negatif bir kayma uygulamayı sağlar. Aşağıdaki örnek:

JpgViewOptions jpegOptions = new JpgViewOptions("image-page{0}.jpeg");
jpegOptions.EmailOptions.DateTimeFormat = "MM d yyyy HH:mm tt zzz"; // tamamen özel format
jpegOptions.EmailOptions.TimeZoneOffset = TimeSpan.FromHours(-5); // 5 saat geriye kaydır

DateTimeFormat değerini null ya da boş string bırakırsanız, GroupDocs.Viewer sistemin geçerli formatını kullanır.

3.3. Alanları ayarlama

Mail mesajı, mesaj gövdesi ve konu, gönderim tarihi, gönderen vb. alanları içerir. GroupDocs.Viewer, bu alanların etiketlerini FieldTextMap özelliği aracılığıyla geçersiz kılmanıza izin verir; bu özellik, bir Field enum değerini (ör. Field.Subject) render çıktısında görünen metne Dictionary üzerinden eşler. Böylece kullanıcı herhangi bir girişi değiştirebilir ya da yeni ekleyebilir:

PngViewOptions pngOptions = new PngViewOptions("image-page{0}.png");
pngOptions.EmailOptions.FieldTextMap[Field.Subject] = "Email Subject";
pngOptions.EmailOptions.FieldTextMap[Field.Sent] = "Mail was sent at";
pngOptions.EmailOptions.FieldTextMap[Field.From] = "Sender";

4. Bir e‑posta yükleyin ve görünüm bilgilerini alın

E‑posta mesajının bazı alan değerlerini, mesajı render etmeden programatik olarak alabilirsiniz. Bunun için kullanıcı, e‑posta belgesini Viewer örneğine yüklemeli ve ardından aşağıda gösterildiği gibi Viewer.GetViewInfo() örnek metodunu kullanmalıdır:

using System;
using GroupDocs.Viewer;
using GroupDocs.Viewer.Options;
using GroupDocs.Viewer.Results;
// ...

using (Viewer viewer = new Viewer("sample.eml"))
{
    ViewInfo generalInfo = viewer.GetViewInfo(ViewInfoOptions.ForHtmlView());
    // açık dönüşüm
    MailMessageViewInfo mailMessageInfo = (MailMessageViewInfo)generalInfo;
    Console.WriteLine("From: {0}; Subject: {1}; Sent: {2}.", mailMessageInfo.From, mailMessageInfo.Subject, mailMessageInfo.Sent);

    // Gerekirse herhangi bir çıktı formatına render edin
    viewer.View(HtmlViewOptions.ForEmbeddedResources());
}

Görüldüğü gibi Viewer.GetViewInfo() metodu ortak ViewInfo sınıfının bir örneğini döndürür; bu örnek daha sonra MailMessageViewInfo sınıfına dönüştürülür. Şu anda yalnızca From, Subject ve Sent alanları desteklenmektedir.

Property Type Meaning
Sent DateTime E‑postanın gönderildiği kesin zaman.
Subject string E‑postanın konu satırında görünen metin.
From string Gönderenin e‑posta adresi, düz metin olarak.

Üç özellik de yalnızca okunabilir.

5. Özet

  • Viewer örneği oluşturun ve giriş e‑posta dosyasını yol ya da akış olarak yapıcıya verin.
  • Viewer.GetViewInfo() metodunu çağırın ve sonucunu MailMessageViewInfo tipine dönüştürerek Sent, Subject ve From meta verilerini alın.
  • Sayfa boyutu, tarih formatı, saat dilimi kayması veya herhangi bir alanın gösterilen metin etiketi gibi ayarları değiştirmek için EmailOptions kullanın, ardından Viewer.View() metodunu çağırın.

Bu adımlar, temel e‑posta özelliklerini elde etmenizi ve mesajın render edildiğinde nasıl görüneceğini kontrol etmenizi sağlar. Ek kütüphanelere ya da karmaşık kodlara ihtiyaç yoktur.

İlgili Bağlantılar

Ücretsiz deneme alın

GroupDocs.Viewer for .NET’in ücretsiz deneme sürümünü releases.groupdocs.com adresinden indirebilirsiniz. Ayrıca tüm özellik ve işlevleri kısıtlama olmadan denemeniz için geçici bir lisans alabilirsiniz: buradan.