1. Introduction
GroupDocs.Viewer for .NET permet d’importer un message électronique dans n’importe quel format populaire, de le rendre en HTML, PNG, JPEG et PDF, et également d’extraire les propriétés de base du message sans le rendre réellement.
En fait, lorsqu’on travaille avec des messages électroniques dans GroupDocs.Viewer, les utilisateurs doivent connaître deux types spécifiques aux e‑mails :
- la classe
Options.EmailOptions– permet de contrôler la façon dont le message est rendu (taille de page, format de date, champs, etc.). Results.MailMessageViewInfo– est produite par GroupDocs.Viewer après l’appel de la méthodeGetViewInfo()et contient les métadonnées du message chargé.
Voici un guide très rapide montrant comment rendre les messages électroniques et obtenir leurs métadonnées.
2. Charger un message électronique et le rendre dans tous les formats de sortie
L’exemple de code très court ci‑dessous montre le chargement d’un message électronique d’entrée « sample.eml » dans une instance de la classe Viewer, puis son rendu dans les 4 formats de sortie pris en charge : HTML, PDF, PNG et JPEG. Comme vous pouvez le voir, au départ les 4 classes d’options de vue sont instanciées, puis « sample.eml » est chargé dans l’instance Viewer via son chemin de fichier, et enfin 4 appels Viewer.View() sont effectués.
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. Ajustement des options d’email pour le rendu
L’exemple ci‑dessus montre un rendu avec toutes les options définies sur leurs valeurs par défaut. Cependant, il existe une classe EmailOptions, disponible dans les 4 options de vue (HtmlViewOptions, PdfViewOptions, PngViewOptions, JpgViewOptions) via la propriété EmailOptions. Il n’est pas nécessaire de créer manuellement une instance de EmailOptions et de l’assigner aux options de vue – tout cela est déjà fait, l’utilisateur n’a qu’à ajuster les valeurs des propriétés si besoin.
Plusieurs propriétés de la classe EmailOptions sont détaillées ci‑après.
3.1. Taille de page
Contrôle la taille de la page de sortie. Par défaut, la valeur est Unspecified – GroupDocs.Viewer ajuste la taille à la plus appropriée. Elle peut être définie de la façon suivante, par exemple :
PdfViewOptions pdfOptions = new PdfViewOptions("Output.pdf");
pdfOptions.EmailOptions.PageSize = PageSize.A1;
3.2. Format de date et d’heure et fuseau horaire
Les messages électroniques possèdent généralement une date « Envoyé ». La propriété DateTimeFormat permet de contrôler le format de cette valeur datetime, et TimeZoneOffset permet d’appliquer un décalage positif ou négatif. Exemple ci‑dessous :
JpgViewOptions jpegOptions = new JpgViewOptions("image-page{0}.jpeg");
jpegOptions.EmailOptions.DateTimeFormat = "MM d yyyy HH:mm tt zzz"; // format totalement personnalisé
jpegOptions.EmailOptions.TimeZoneOffset = TimeSpan.FromHours(-5); // Décalage de 5 heures en arrière
Si vous laissez DateTimeFormat à null ou à une chaîne vide, GroupDocs.Viewer utilise le format actuel du système.
3.3. Ajustement des champs
Le message contient le corps du texte ainsi que des champs tels que l’objet, la date d’envoi, l’expéditeur, etc. GroupDocs.Viewer permet aux utilisateurs de remplacer les libellés de ces champs via la propriété FieldTextMap, qui associe une valeur d’énumération Field (par ex., Field.Subject) au texte affiché dans le rendu. L’utilisateur peut donc remplacer n’importe quelle entrée ou en ajouter de nouvelles :
PngViewOptions pngOptions = new PngViewOptions("image-page{0}.png");
pngOptions.EmailOptions.FieldTextMap[Field.Subject] = "Objet du courriel";
pngOptions.EmailOptions.FieldTextMap[Field.Sent] = "Courriel envoyé le";
pngOptions.EmailOptions.FieldTextMap[Field.From] = "Expéditeur";
4. Charger un email et obtenir ses informations de visualisation
Il est possible d’obtenir certaines valeurs de champs du message électronique de façon programmatique sans le rendre. Pour cela, l’utilisateur doit charger le document email dans l’instance Viewer, puis appeler la méthode d’instance Viewer.GetViewInfo(), comme illustré ci‑dessous :
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());
// conversion explicite
MailMessageViewInfo mailMessageInfo = (MailMessageViewInfo)generalInfo;
Console.WriteLine("From: {0}; Subject: {1}; Sent: {2}.", mailMessageInfo.From, mailMessageInfo.Subject, mailMessageInfo.Sent);
// Rendu vers n’importe quel format de sortie si besoin
viewer.View(HtmlViewOptions.ForEmbeddedResources());
}
On constate que la méthode Viewer.GetViewInfo() renvoie une instance de la classe commune ViewInfo, qui est ensuite castée en MailMessageViewInfo. Pour l’instant, seuls les champs From, Subject et Sent sont pris en charge.
| Propriété | Type | Signification |
|---|---|---|
Sent |
DateTime |
L’heure exacte à laquelle le courriel a été envoyé. |
Subject |
string |
Le texte apparaissant dans la ligne d’objet du courriel. |
From |
string |
L’adresse e‑mail de l’expéditeur sous forme de chaîne simple. |
Les trois propriétés sont en lecture seule.
5. Résumé
- Créez une instance
Vieweret indiquez le fichier du message électronique à son constructeur (par chemin ou flux). - Appelez la méthode
Viewer.GetViewInfopuis castiez son résultat enMailMessageViewInfopour obtenir les métadonnées : champsSent,SubjectetFrom. - Utilisez
EmailOptionspour modifier la taille de page, le format de date, le décalage de fuseau horaire ou le libellé affiché pour chaque champ, puis appelez la méthodeViewer.View().
Ces étapes vous donnent les propriétés essentielles du courriel et vous permettent de contrôler l’apparence du rendu. Aucun module supplémentaire ni code complexe n’est requis.
Voir aussi
Obtenez un essai gratuit
Vous pouvez télécharger une version d’essai gratuite de GroupDocs.Viewer for .NET depuis releases.groupdocs.com. Vous pouvez également obtenir une licence temporaire pour essayer toutes les fonctionnalités sans restriction ici.