1. Introduction

GroupDocs.Viewer for .NET kütüphanesi, e‑posta mesajını herhangi bir 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.MailMessageViewInfoGetViewInfo() yöntemi çağrıldıktan sonra GroupDocs.Viewer tarafından üretilir ve yüklenen e‑posta mesajının meta verilerini 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. Load an email message and render it to all output formats

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ının (HTML, PDF, PNG ve JPEG) hepsine render eder. Başlangıçta 4 view option sınıfı örneklenir, ardından “sample.eml” dosya yoluyla Viewer örneğine yüklenir ve son olarak 4 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. Tuning email options for rendering

Yukarıdaki örnek, tüm seçeneklerin varsayılan değerlerine ayarlandığı bir render işlemini gösterir. Ancak bir EmailOptions sınıfı vardır ve bu sınıf, HtmlViewOptions, PdfViewOptions, PngViewOptions, JpgViewOptions olmak üzere dört view option içinde EmailOptions özelliği aracılığıyla mevcuttur. 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. Page size

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

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

3.2. Date and time format and time zone

E‑posta mesajlarının genellikle bir “Gönderildi” tarihi bulunur. DateTimeFormat özelliği, bu tarih‑zaman değerinin nasıl biçimlendirileceğini kontrol eder; TimeZoneOffset ise bu tarih‑zaman değerine pozitif ya da negatif bir kayma uygulamanızı 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 tarih‑zaman formatını kullanır.

3.3. Adjusting fields

E‑posta mesajı, mesaj gövdesi ve konu, gönderim tarihi, gönderen gibi 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ünecek metne eşler. Böylece kullanıcı mevcut bir girişi değiştirebilir veya yeni ekleyebilir:

PngViewOptions pngOptions = new PngViewOptions("image-page{0}.png");
pngOptions.EmailOptions.FieldTextMap[Field.Subject] = "E‑posta Konusu";
pngOptions.EmailOptions.FieldTextMap[Field.Sent] = "Mesaj gönderildi:";
pngOptions.EmailOptions.FieldTextMap[Field.From] = "Gönderen";

4. Load an email and get its view information

E‑posta mesajını render etmeden, bazı alan değerlerini programatik olarak elde etmek mümkündür. 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 et
    viewer.View(HtmlViewOptions.ForEmbeddedResources());
}

Görüldüğü gibi Viewer.GetViewInfo() yöntemi ortak bir ViewInfo sınıfının ö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 tam olarak gönderildiği 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. Summary

  • 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 etiket metnini 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.

See Also

Get a free trial

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: here.