1. Introduzione

GroupDocs.Viewer for .NET consente di importare il messaggio email in qualsiasi formato popolare, renderizzarlo in HTML, PNG, JPEG e PDF, e anche di estrarre le proprietà di base del messaggio email senza effettuare il rendering effettivo.

In realtà, quando si lavora con i messaggi email in GroupDocs.Viewer, gli utenti devono tenere presente due tipi specifici per le email:

  • classe Options.EmailOptions – permette di controllare come il messaggio viene renderizzato (dimensione pagina, formato data, campi, ecc.).
  • Results.MailMessageViewInfo — viene prodotto da GroupDocs.Viewer dopo la chiamata al metodo GetViewInfo() e contiene i metadati del messaggio email caricato.

Di seguito una guida rapida che mostra come renderizzare i messaggi email e ottenere i loro metadati.


2. Caricamento di un messaggio email e rendering in tutti i formati di output

Il breve esempio di codice qui sotto mostra come caricare un messaggio email di input “sample.eml” in un’istanza della classe Viewer e poi renderizzarlo in tutti e 4 i formati di output supportati: HTML, PDF, PNG e JPEG. Come si può vedere, all’inizio vengono istanziate le quattro classi di opzioni di visualizzazione, quindi “sample.eml” viene caricato nell’istanza Viewer tramite il percorso del file, e infine vengono effettuate quattro chiamate a Viewer.View().

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. Configurazione delle opzioni email per il rendering

L’esempio sopra mostra il rendering con tutte le opzioni impostate sui valori predefiniti. Tuttavia, esiste la classe EmailOptions, disponibile in tutte e 4 le opzioni di visualizzazione (HtmlViewOptions, PdfViewOptions, PngViewOptions, JpgViewOptions) tramite la proprietà EmailOptions. Non è necessario creare manualmente un’istanza della classe EmailOptions e assegnarla alle opzioni di visualizzazione tramite la proprietà EmailOptions — tutto ciò è già fatto, l’utente deve solo regolare i valori delle proprietà se necessario.

Di seguito sono descritte le varie proprietà della classe EmailOptions.

3.1. Dimensione pagina

Controlla la dimensione della pagina di output. Per impostazione predefinita è Unspecified — GroupDocs.Viewer regola la dimensione in base a quella più appropriata. Può essere impostata, ad esempio, nel modo seguente:

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

3.2. Formato data/ora e fuso orario

I messaggi email solitamente hanno una data “Sent”. La proprietà DateTimeFormat consente di controllare come questo valore datetime verrà formattato, mentre TimeZoneOffset permette di applicare uno spostamento positivo o negativo a tale datetime. Esempio:

JpgViewOptions jpegOptions = new JpgViewOptions("image-page{0}.jpeg");
jpegOptions.EmailOptions.DateTimeFormat = "MM d yyyy HH:mm tt zzz"; // formato completamente personalizzato
jpegOptions.EmailOptions.TimeZoneOffset = TimeSpan.FromHours(-5); // aggiunge uno spostamento di 5 ore indietro

Se si lascia DateTimeFormat a null o a stringa vuota, GroupDocs.Viewer utilizza il formato corrente del sistema.

3.3. Regolazione dei campi

Il messaggio email contiene il corpo del messaggio e campi come oggetto, data di invio, mittente, ecc. GroupDocs.Viewer consente agli utenti di sovrascrivere le etichette di questi campi tramite la proprietà FieldTextMap, che mappa un valore enum Field (ad es., Field.Subject) al testo visualizzato nell’output renderizzato. L’utente può quindi sostituire qualsiasi voce o aggiungerne di nuove:

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. Caricamento di un’email e ottenimento delle informazioni di visualizzazione

È possibile recuperare alcuni valori dei campi del messaggio email programmaticamente senza renderizzare il messaggio stesso. Per farlo, l’utente deve caricare il documento email nell’istanza Viewer e poi utilizzare il metodo Viewer.GetViewInfo(), come mostrato di seguito:

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());
    // casting esplicito
    MailMessageViewInfo mailMessageInfo = (MailMessageViewInfo)generalInfo;
    Console.WriteLine("From: {0}; Subject: {1}; Sent: {2}.", mailMessageInfo.From, mailMessageInfo.Subject, mailMessageInfo.Sent);

    // Renderizza in qualsiasi formato di output se necessario
    viewer.View(HtmlViewOptions.ForEmbeddedResources());
}

Si può notare che il metodo Viewer.GetViewInfo() restituisce un’istanza della classe comune ViewInfo, che viene poi convertita nella classe MailMessageViewInfo. Al momento sono supportati solo i campi From, Subject e Sent.

Proprietà Tipo Significato
Sent DateTime L’orario esatto in cui l’email è stata inviata.
Subject string Il testo che appare nella riga dell’oggetto dell’email.
From string L’indirizzo email del mittente come stringa semplice.

Tutte e tre le proprietà sono di sola lettura.

  • Creare un’istanza di Viewer e specificare il file email di input al costruttore, passando il percorso o lo stream.
  • Chiamare il metodo Viewer.GetViewInfo e quindi convertire il risultato in MailMessageViewInfo per ottenere i metadati: campi Sent, Subject e From.
  • Utilizzare EmailOptions per modificare la dimensione della pagina, il formato data, lo spostamento del fuso orario o l’etichetta di testo mostrata per qualsiasi campo, quindi chiamare il metodo Viewer.View().

Questi passaggi forniscono le proprietà email principali e consentono di controllare l’aspetto del messaggio al rendering. Non sono necessarie librerie aggiuntive né codice complesso.

Vedi anche

Ottieni una prova gratuita

Puoi scaricare una versione di prova gratuita di GroupDocs.Viewer for .NET da releases.groupdocs.com. Puoi anche ottenere una licenza temporanea per provare tutte le funzionalità senza restrizioni da here.