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.EmailOptionssınıfı – mesajın nasıl render edileceğini (sayfa boyutu, tarih formatı, alanlar vb.) kontrol etmenizi sağlar.Results.MailMessageViewInfosı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 sonucunuMailMessageViewInfotipine dönüştürerekSent,SubjectveFrommeta 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
EmailOptionskullanın, ardındanViewer.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.