Konvertera EML till HTML

Konvertera EML till HTML

För att integrera e‑postinnehåll i webbapplikationer är konvertering från EML till HTML det rätta valet, vilket möjliggör visuellt tilltalande e‑postpresentation.

För att konvertera EML till HTML behöver du följande klasser:

  • MailMessage klassen används för att skapa ett objekt som representerar ett e‑postmeddelande. Den möjliggör åtkomst till meddelandeegenskaper, såsom ämne, innehåll, avsändare och mottagarnas adresser etc. Med dess metoder kan du skapa, läsa in och analysera, modifiera, spara e‑post eller utföra andra manipulationer med dem.
  • SaveOptions klassen ger alternativ för att spara e‑postmeddelanden i olika format. Den möjliggör för användare att anpassa hur e‑postmeddelanden sparas i olika format. Med denna klass kan användare ange alternativ för att spara bilagor, rubriker, metadata och egenskaper för e‑postmeddelanden, ställa in kodningsalternativ eller välja om meddelanden ska sparas med kryptering eller inte.

I kodexemplet nedan arbetar dessa klasser tillsammans för att läsa in en befintlig EML‑fil och ange formatet på meddelandet som EML. Därefter sparar de det inlästa e‑postmeddelandet som en HTML‑fil med de angivna standard‑HTML‑sparalternativen:

  1. Använd MailMessage.Load() metoden för att läsa in den befintliga filen i ett MailMessage‑objekt och ange meddelandeformatet.
  2. Spara det inlästa MailMessage‑objektet som en HTML‑fil med hjälp av spara metoden. Använd SaveOptions.DefaultHtml() för att ange sparalternativen för HTML‑format.
// Initialize and Load an existing EML file by specifying the MessageFormat
var message = MailMessage.Load("myMessage.eml");
message.Save("output.html", SaveOptions.DefaultHtml);

Spara EML‑resurser i en separat fil

Aspose.Email tillhandahåller ResourceRenderingMode enumerationen som låter utvecklare manipulera resurser i en HTML‑fil. I kodexemplet nedan används denna enum för att spara resurser till en fil och infoga i HTML‑taggen ‘src’ med sökvägen till filen:

  1. Läs in e‑postmeddelandet från källfilen med hjälp av MapiMessage.Load metod.
  2. Skapa en instans av HtmlSaveOptions med angivna renderings‑ och resursalternativ.
  3. Spara det inlästa e‑postmeddelandet som en HTML‑fil till målplatsen med hjälp av Spara metoden med HtmlSaveOptions‑parametern.
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
UseRelativePathToResources = true
};
msg.Save(Path.Combine("target.html"), htmlSaveOptions);

Bädda in resurser i en HTML‑fil

I vissa fall krävs det att resurser, såsom bilder, bäddas in direkt i HTML‑filen för sömlös distribution och presentation. Med Aspose.Email för .NET kan du enkelt uppnå detta med hjälp av ResourceRenderingMode enumerationen:

  1. Läs in e‑postmeddelandet från källfilen med hjälp av MapiMessage.Load metod.
  2. Skapa en ny HtmlSaveOptions objektet och sätt egenskapen ResourceRenderingMode till EmbedIntoHtml.
  3. Spara det inlästa e‑postmeddelandet som en HTML‑fil med hjälp av Spara metoden, ange målfilens sökväg och skicka HtmlSaveOptions‑objektet som parameter för att bädda in resurser i HTML‑filen.
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.EmbedIntoHtml
};
msg.Save(Path.Combine("target.html"), htmlSaveOptions);

Konvertera EML till ICS

Följande kodexempel visar hur man extraherar kalenderhändelsedata från en EML‑fil och sparar den till en separat ICS‑fil för vidare användning eller manipulation.

// Load the EML file
var eml = MailMessage.Load("message.eml");
// Find the alternate view with MediaType "text/calendar" (ICS)
var icsView = eml.GetAlternateViewContent("text/calendar");
// If an ICS view is found, save it to a file
if (icsView != null)
{
    File.WriteAllText("appointment.ics", icsView);
}

Anpassning

Aspose.Email för .NET tillhandahåller verktyg för att anpassa ICS‑ (iCalendar)‑innehåll som extraherats från EML‑ (Electronic Mail)‑filer.

Anpassa händelsedetaljerna

Följande kodexempel visar hur man anger olika detaljer för mötet, såsom sammanfattning, plats och beskrivning. Koden använder Appointment klassen som representerar kalenderavtal eller händelser i ICS‑ (iCalendar)‑format. Klassen tillhandahåller egenskaper och metoder för att programmässigt skapa, ändra och hantera kalenderhändelser.

// Load the EML file
var eml = MailMessage.Load("message.eml");
// Find the alternate view with MediaType "text/calendar" (ICS)
var icsView = eml.GetAlternateViewContent("text/calendar");
// If an ICS view is found, load it to Appointment class object
var appointment = Appointment.Load(new MemoryStream(Encoding.UTF8.GetBytes(icsView)));

// Customize the event details
appointment.Summary = "Customized Event Summary";
appointment.Location = "Customized Location";
appointment.Description = "Customized Event Description";

// Add or modify attendees as needed
appointment.Attendees.Clear();
appointment.Attendees.Add("custom@example.com");

// Save the customized ICS content to a file
appointment.Save("customized_appointment.ics");

Skapa ett återkomstande mönster

Följande kodexempel visar hur man skapar ett veckovis återkomstande mönster för ett möte, där mötet sker var femte vecka på lördagar. Koden använder Recurrence egenskap hos Appointment klassen som hämtar eller ställer in återkomstande mönster.

var pattern = new  WeeklyRecurrencePattern(5, 7);
pattern. EndDate = new DateTime(2023, 8, 7);

appointment.Recurrence = pattern;

Lägg till EML i MBOX

MBOX är ett vanligt använt format för att lagra flera e‑postmeddelanden i en enda fil, vilket gör det lämpligt för e‑postarkivering och migrationsändamål. Använd MboxrdStorageWriter klassen för att skriva e‑postmeddelanden till en MBOX‑fil. Följande kodexempel visar hur man utför denna uppgift:

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

Konvertera EML till MHTML

Med Aspose.Email för .NET kan du enkelt konvertera EML‑filer till MHTML‑format för olika ändamål såsom arkivering, kompatibilitet, offline‑visning etc. Läs in e‑postmeddelandet med MailMessage.Load, använd sedan MhtSaveOptions klassen som parameter till MailMessage.Save metoden för att ange utfilformatet när meddelandet sparas som en separat fil:

// Initialize and Load an existing EML file by specifying the MessageFormat
var message = MailMessage.Load("myMessage.eml");
var mhtSaveOptions = new MhtSaveOptions;
message.Save("output.mhtml", mhtSaveOptions);

Den MhtSaveOptions klassen erbjuder olika alternativ för att anpassa utdata‑MHTML‑filer i enlighet med dina specifika krav:

  • Bevara ursprungligt datumformat. Du kan välja att bevara det ursprungliga datumformatet i e‑postmeddelandena under konverteringsprocessen:

    saveOptions.PreserveOriginalDate = true;
    
  • Ställ in utdata‑kodning. Du kan ange vilken kodning som ska användas när du skriver ut MHTML‑filer:

    saveOptions.OutputEncoding = Encoding.UTF8; 
    
  • Inkludera bilagor. Detta kan vara användbart om du vill bevara bilagor när du konverterar e‑post till MHTML‑format:

    saveOptions.SaveAttachments = true;
    

Konvertera EML till MSG

Oavsett om du behöver migrera e‑postdata, arkivera meddelanden eller integrera med Microsoft Outlook, så erbjuder Aspose.Email lösningar för att uppnå dina mål. MSG‑filer används i stor utsträckning av Microsoft Outlook. För konvertering från EML till MSG, använd MailMessage.Load metoden för att läsa in den befintliga EML‑filen och ange hur den ska läsas in med EmlLoadOptions.

Följande kodexempel visar hur man konverterar EML‑filer till MSG‑format:

// Load mail message
using (var message = MailMessage.Load("sourceFile.eml", new EmlLoadOptions())){
// Save as MSG
var msgSaveOptions = new MsgSaveOptions;
message.Save("output.msg", MsgSaveOptions);
} 

Konvertera EML till OFT

För att konvertera EML‑filer till Outlook‑mall (OFT)-format, läs in det befintliga e‑postmeddelandet med MailMessage.Load metoden och spara det med MailMessage.Save ange standardalternativen för att spara ett meddelande i OFT‑format:

// load the EML file to be converted
var message = MailMessage.Load("My File.eml"); 
// save EML as a OFT 
message.Save("Saved File.oft", SaveOptions.DefaultOft);

Lägg till EML i PST

För att konvertera EML‑filer till Personal Storage Table (PST)-format, läs in meddelandet med MapiMessage.Load metoden, skapa utdatafilen med PersonalStorage.Create och lägg till e‑posten i den skapade Inkorgen‑mappen i lagringsfilen med hjälp av AddMessage:

using (var msg = MapiMessage.Load("sourceFile.eml", new EmlLoadOptions()))
{
    using (var personalStorage = PersonalStorage.Create("outputFile.pst", FileFormatVersion.Unicode))
  {
        var inbox = personalStorage.RootFolder.AddSubFolder("Inbox");
        inbox.AddMessage(msg);
  }
}

Lägg till EML i OST

Utvecklare kan enkelt konvertera EML‑filer till Outlook Offline Storage Table (OST)-format, vilket möjliggör integration med Microsoft Outlook. Följande kodexempel visar hur man lägger till ett EML‑meddelande i en OST‑fil:

using (var ost = PersonalStorage.FromFile("storage.ost"))
{
    // Load the EML file
    var msg = MapiMessage.Load("message.eml", new EmlLoadOptions());

    // Add the EML message to the OST file
    var folderInfo = ost.RootFolder.GetSubFolder("Inbox");
    folderInfo.AddMessage(msg);
}

Den EmlLoadOptions parametern anger ytterligare alternativ för inläsning av EML‑filer, såsom att bevara inbäddade meddelandeformat, ta bort signaturer och mer.

Konvertera EML till VCF

Aspose.Email för .NET erbjuder funktionalitet för att konvertera EML‑filer till vCard‑format (VCF), vilket gör det möjligt för utvecklare att extrahera kontaktinformation från e‑postmeddelanden. För detta ändamål erbjuder biblioteket GetAlternateViewContent metod för MailMessage klassen som möjliggör för utvecklare att komma åt alternativa vyer i e‑postmeddelanden och extrahera VCF‑innehåll som är inbäddat i EML‑filer för vidare användning:

// Load the EML file
var eml = MailMessage.Load("message.eml");
// Find the alternate view with MediaType "text/vcard" (VCF)
var vcfView = eml.GetAlternateViewContent("text/vcard");
// If an VCF view is found, save it to a file
if (vcfView != null)
{
    File.WriteAllText("contact.vcf", vcfView);
}