Konvertera e-post till HTML i C# .NET

HTML är ett allmänt använt och lättillgängligt format som kan ses av ett brett utbud av plattformar, webbläsare, inklusive stationära datorer och mobila enheter. Däremot kan EML- och MSG-filer kräva att specifik programvara eller e-postklienter visas, vilket kan göra dem svårare att komma åt och se över tid. Så att konvertera MSG- eller EML-filer till HTML gör dem lättare att se, särskilt för mottagare som kanske inte har kompatibla e-postklienter eller programvara.

Dessutom är HTML-filer lättare att arkivera och förblir i ett sökbart, indexerat format.

Den här artikeln presenterar en algoritm för att snabbt och enkelt konvertera MSG- eller EML-filer till HTML-format med C#, oavsett det underliggande syftet. Vår pålitliga metod garanterar att innehållet i e-postmeddelandet, inklusive inbäddade bilder, bevaras helt utan förlust. Detta säkerställer att e-postmeddelandets integritet bibehålls under hela konverteringsprocessen.

Artikeln täcker följande ämnen:

C# API för att konvertera EML/MSG-filer till HTML

För konvertering av EML/MSG-filer till HTML, kommer vi att använda Aspose.Email for .NET. Det är ett e-postbearbetnings-API som låter dig manipulera e-postmeddelanden och arbeta med filformat för populära e-postklienter som Thunderbird, Outlook, etc. Du kan ladda ner API:s DLL eller installera den från NuGet med hjälp av följande kommando:

PM> Install-Package Aspose.Email

Konvertera EML/MSG-filer till HTML och spara bilder separat

En typisk MSG-fil har följande vy:

MSG-filvy

Med vårt API kan du ställa in vilken katalog som helst på din enhet och spara HTML-målfilen med bilder i en separat mapp:

HTML-filvy

Använd följande kodexempel för att konvertera ett e-postmeddelande i MSG- eller EML-format till en HTML-fil med bilder, som sparas i en målkatalog. Koden utför följande steg:

  1. Anger först käll- och målsökvägarna för käll-MSG/EML-filen respektive HTML-filen, samt målkatalogen för resurserna.
  2. Laddar MSG- eller EML-filen med metoden MailMessage.Load.
  3. Skapar objektet HtmlSaveOptions och ställer in egenskapen ResourceRenderingMode till SaveToFile.
  4. Definierar en delegat för händelsen SaveResourceHandler för HtmlSaveOptions.
  5. Skapar en målkatalog för resurserna i delegaten om den inte redan finns.
  6. Sparar varje resurs till en fil med ett filnamn inuti delegaten baserat på innehållstypen för resursen.
  7. Anropar metoden Save för instansen MailMessage och skickar in mål-HTML-filnamnet och HtmlSaveOptions-instansen för att spara e-postmeddelandet i HTML-format.
// MSG- eller EML-filnamn
var msgFileName = Path.Combine(sourcePath, "A Day in the Park.msg");

// mål HTML
var htmlFileName = Path.Combine(targetPath, "A Day in the Park.html");

// målkatalog för att spara bilder
var resourceDir = Path.Combine(targetPath, "A Day in the Park");

// Ladda MSG eller EML
var msg = MailMessage.Load(msgFileName);

// Skapa HTML-sparalternativ
var htmlSaveOptions = new HtmlSaveOptions
{
    ResourceRenderingMode = ResourceRenderingMode.SaveToFile
};

htmlSaveOptions.SaveResourceHandler +=
    (AttachmentBase attachment, out string resourceFileName) =>
    {
        if (!Directory.Exists(resourceDir))
        {
            Directory.CreateDirectory(resourceDir);
        }

        resourceFileName = Path.Combine(resourceDir, attachment.ContentType.Name);
        attachment.Save(resourceFileName);
    };

msg.Save(htmlFileName, htmlSaveOptions);

Konvertera EML/MSG-filer till HTML och spara bilder i HTML

Ibland kanske du föredrar att konvertera EML/MSG-filer till HTML som behåller inbäddade bilder i HTML.

Bild inuti HTML i en textredigerare

The following code snippet demonstrates how to convert an MSG or EML file to HTML format in C# and save the images inside HTML. Koden utför följande steg:

  1. Definierar käll- och målsökvägarna för e-postfilen och HTML-utdata.
  2. Laddar MSG- eller EML-filen med metoden MailMessage.Load.
  3. Skapar en ny instans av klassen HtmlSaveOptions, som låter dig konfigurera hur e-postmeddelandet sparas som HTML.
  4. Konfigurerar instansen HtmlSaveOptions för att bädda in resurserna, inklusive bilder, direkt i HTML.
  5. Anropar metoden Save för instansen MailMessage och skickar in mål-HTML-filnamnet och HtmlSaveOptions-instansen för att spara e-postmeddelandet i HTML-format.
// MSG- eller EML-filnamn
var msgFileName = Path.Combine(sourcePath, "A Day in the Park.msg");

// mål HTML
var htmlFileName = Path.Combine(targetPath, "A Day in the Park.html");

// Ladda MSG eller EML
var msg = MailMessage.Load(msgFileName);

// Skapa HTML-sparalternativ
var htmlSaveOptions = new HtmlSaveOptions
{
    ResourceRenderingMode = ResourceRenderingMode.EmbedIntoHtml
};

msg.Save(htmlFileName, htmlSaveOptions);

Spara HTML med en Header

Som en valfri variant kan du spara en HTML med en rubrik. Följande kodavsnitt visar hur man sparar en HTML med en rubrik i C#:

// Skapa HTML-sparalternativ
var htmlSaveOptions = new HtmlSaveOptions
{
    ResourceRenderingMode = ResourceRenderingMode.EmbedIntoHtml,
    HtmlFormatOptions = HtmlFormatOptions.WriteHeader
};

Som ett resultat kommer en textrubrik att läggas till i mål-HTML:

Texthuvud

Slutsats

För att sammanfatta, från den här artikeln har du precis lärt dig om bekvämligheten med HTML-format för att arkivera och hantera dina filer och hur du utför konvertering från EML eller MSG i C# med Aspose.Email för .NET-biblioteket. Du kan se hur snabb och enkel konverteringsprocessen är bara med några rader kod. Om du har några frågor är du välkommen att skriva till vårt gratis supportforum. Du kan också lära dig mer om Aspose.Email för .NET, dess funktioner och faciliteter från vår dokumentation.

Se även