Convertir HTML vers d’autres formats

Convert HTML to EML

Aspose.Email pour .NET propose une méthode pour convertir les fichiers HTML en format EML en utilisant le MailMessage.Load et MailMessage.Save méthodes pour charger le fichier HTML existant et l’enregistrer au format EML respectivement :

var eml = MailMessage.Load("myContent.html", new HtmlLoadOptions());
eml.Save("output.eml", SaveOptions.DefaultEml);

Dans l’exemple de code, le HtmlLoadOptions classe qui vous permet de spécifier des options supplémentaires lors du chargement d’un MailMessage à partir du format HTML. L’exemple de code suivant démontre l’utilisation de cette classe. Dans l’exemple, il spécifie une représentation textuelle du corps du message :

// Create an instance of HtmlLoadOptions
var loadOptions = new HtmlLoadOptions();

// Set the ShouldAddPlainTextView property to true to generate a plain text view along with HTML
loadOptions.ShouldAddPlainTextView = true;

// Load an HTML file
var mailMessage = MailMessage.Load("input.html", loadOptions);

// Access the plain text view of the email message
var plainTextView = mailMessage.GetAlternateViewContent("text/plain");

// Print or further process the plain text view
Console.WriteLine("Plain Text View:");
Console.WriteLine(plainTextView);

Convert HTML to EMLX

Vous pouvez facilement convertir des fichiers HTML en EMLX. Toutes les propriétés et classes fournies par l’API pour la conversion HTML vers EML sont également disponibles pour ce type de conversion :

var eml = MailMessage.Load("myContent.html", new HtmlLoadOptions());
eml.Save("output.emlx", SaveOptions.DefaultEmlx);

Pour des paramètres supplémentaires, voir Convert HTML to EML paragraphe.

Convert HTML to ICS

Pour réaliser la tâche, la bibliothèque propose le Appointment classe pour représenter et gérer les événements de calendrier. L’exemple de code suivant montre comment créer un rendez‑vous à partir de contenu HTML et l’enregistrer au format de fichier ICS (iCalendar) :

// Sample HTML content
var htmlContent = File.ReadAllText("content.html");

// Create and initialize an instance of the Appointment class
var appointment = new Appointment(
    "Meeting Room 3 at Office Headquarters",// Location
    "Monthly Meeting",                      // Summary
    "Please confirm your availability.",    // Description
    new DateTime(2015, 2, 8, 13, 0, 0),     // Start date
    new DateTime(2015, 2, 8, 14, 0, 0),     // End date
    "from@domain.com",                      // Organizer
    "attendees@domain.com")
{
    HtmlDescription = htmlContent
};

// Save the event to an ICS file
appointment.Save("output.ics", AppointmentSaveFormat.Ics);

Generate MBOX from HTML content

Pour effectuer la conversion HTML vers MBOX, utilisez le Load méthode du MailMessage classe, en spécifiant le chemin du fichier de contenu HTML et une instance de HtmlLoadOptions. Cette méthode analyse le contenu HTML et génère un objet MailMessage correspondant, en préservant la structure et le formatage du HTML d’origine. Après avoir chargé le contenu HTML dans un objet MailMessage, écrivez le message dans un fichier MBOX en utilisant le MboxrdStorageWriter classe:

using (var eml = MailMessage.Load("content.html", new HtmlLoadOptions())){
    using (var writer = new MboxrdStorageWriter("output.mbox", false)){
        writer.WriteMessage(eml);
    }
}

Convert HTML to MHTML

Utilisez le Load méthode du MailMessage classe pour charger le fichier existant, en spécifiant son chemin et une instance de HtmlLoadOptions. Cette méthode analyse le contenu HTML et génère un objet MailMessage correspondant, en préservant la structure et la mise en forme du HTML d’origine. Après avoir chargé le contenu HTML dans un objet MailMessage, les développeurs peuvent l’enregistrer en fichier MHTML en utilisant le Enregistrer méthode, en spécifiant le chemin du fichier de sortie souhaité et en utilisant le SaveOptions.DefaultMhtml option :

var eml = MailMessage.Load("content.html", new HtmlLoadOptions());
eml.Save("output.mhtml", SaveOptions.DefaultMhtml);

Le MhtSaveOptions La classe offre une variété d’options pour configurer le comportement et les paramètres du fichier MHTML de sortie au lieu de SaveOptions.DefaultMhtml. Avec son propriétés, vous pouvez spécifier des options supplémentaires lors de la sauvegarde de MailMessage au format MHTML. Les plus populaires sont :

  • MhtFormatOptions - Vous permet de personnaliser la façon dont le message électronique est enregistré au format MHT afin de répondre au mieux à vos besoins.
  • SaveAttachments - Obtient ou définit une valeur indiquant s’il faut enregistrer les pièces jointes.
  • SaveAllHeaders - Définit s’il faut enregistrer tous les en-têtes dans le mhtml de sortie ou non. La valeur par défaut est false.
  • PreserveOriginalDate - Définit s’il faut conserver la date d’origine dans le message électronique lors de l’enregistrement ou non. La valeur par défaut est true.

L’exemple de code suivant montre comment ces propriétés peuvent être utilisées :

var mhtSaveOprtions = new MhtSaveOptions
{
    MhtFormatOptions = MhtFormatOptions.WriteHeader,
    SaveAttachments = true,
    SaveAllHeaders = true,
    PreserveOriginalDate = true
}

Convertir HTML en MSG

Après avoir chargé le contenu HTML dans un objet MailMessage, enregistrez‑le au format MSG en utilisant le Enregistrer méthode, en spécifiant le chemin du fichier de sortie souhaité et en utilisant le SaveOptions.DefaultMsgUnicode option. Cette option garantit que le fichier de sortie est enregistré au format MSG avec codage Unicode.

var eml = MailMessage.Load("content.html", new HtmlLoadOptions());
eml.Save("output.msg", SaveOptions.DefaultMsgUnicode);

De plus, Aspose.Email pour .NET propose une gamme de fonctionnalités avancées et d’options pour la conversion HTML en MSG :

Convertir HTML en OFT

Après avoir chargé le contenu HTML dans un objet MailMessage, enregistrez‑le au format OFT en utilisant le Enregistrer méthode, en spécifiant le chemin du fichier de sortie souhaité et en utilisant le SaveOptions.DefaultOft option :

var eml = MailMessage.Load("content.html", new HtmlLoadOptions());
eml.Save("template.oft", SaveOptions.DefaultOft);

Ajouter un message avec contenu HTML source au PST

La conversion HTML en PST consiste à créer un nouveau fichier PST (Personal Storage Table) avec un nouveau dossier, charger un fichier HTML et l’ajouter au nouveau dossier :

  1. Créez une instance d’un objet PersonalStorage représentant un nouveau fichier PST en utilisant le Créer méthode du PersonalStorage classe.
  2. Accédez au dossier racine du fichier PST et ajoutez‑y un sous‑dossier en utilisant le AddSubFolder méthode du FolderInfo classe.
  3. Chargez le contenu d’un fichier HTML dans un MapiMessage objet en utilisant le Load méthode avec une instance de HtmlLoadOptions pour spécifier que le contenu est au format HTML.
  4. Ajoutez l’objet MapiMessage chargé (représentant le contenu HTML) au dossier dans le fichier PST en utilisant le AddMessage méthode.
using (var pst = PersonalStorage.Create("outputFile.pst", FileFormatVersion.Unicode))
{ 
    var inbox = pst.RootFolder.AddSubFolder("Inbox");
    var msg = MapiMessage.Load("content.html", new HtmlLoadOptions());
    inbox.AddMessage(msg);
}

Ajouter un message avec contenu HTML source à l’OST

L’exemple de code suivant avec les étapes vous montrera comment ces composants travaillent ensemble pour ajouter du contenu HTML au fichier OST :

  1. Chargez un fichier OST existant avec le FromFile méthode du PersonalStorage classe utilisée pour représenter le fichier de stockage qui contiendra les messages électroniques.
  2. Chargez le fichier HTML en utilisant le Load méthode du MapiMessage classe représentant un message électronique au format Microsoft Outlook.
  3. Spécifiez HtmlLoadOptions pour activer des options supplémentaires lors du chargement de MailMessage au format HTML.
  4. Récupérez le dossier racine du fichier OST en utilisant le RootFolder propriété du PersonalStorage objet.
  5. Obtenez le dossier Inbox dans le fichier OST en utilisant le GetSubFolder méthode sur le dossier racine.
  6. Ajoutez l’objet MapiMessage chargé (représentant le contenu HTML) au dossier Inbox en utilisant le AddMessage méthode sur le dossier.
using (var ost = PersonalStorage.FromFile("storage.ost"))
{
    var msg = MapiMessage.Load("content.html", new HtmlLoadOptions());
    var folderInfo = ost.RootFolder.GetSubFolder("Inbox");
    folderInfo.AddMessage(msg);
}

Convertir HTML en VCF

L’exemple de code suivant montre comment créer un élément de contact, le remplir avec du contenu HTML et l’enregistrer dans un fichier VCF :

  1. Lisez le contenu d’un fichier HTML dans une variable chaîne en utilisant la méthode File.ReadAllText.
  2. Créez un nouvel objet MapiContact en instanciant le MapiContact classe.
  3. Définissez les propriétés du contact : nom d’affichage, adresse e‑mail.
  4. Définissez le contenu du corps du contact en HTML en utilisant SetBodyContent.
  5. Enregistrez le contact au format VCF en utilisant le Enregistrer méthode.
var content = File.ReadAllText("content.html");
            
// Create a new MapiContact
var contact = new MapiContact();
contact.NameInfo.DisplayName = "John Doe";
contact.ElectronicAddresses.Email1.EmailAddress = "john.doe@example.com";
contact.SetBodyContent(content, BodyContentType.Html);

// Save the contact to a VCF file
contact.Save("contact.vcf", ContactSaveFormat.VCard)