Hantera Outlook‑meddelanden

Spara e‑postmeddelanden som HTML

Aspose.Email gör det möjligt att spara e‑postresurser med relativa sökvägar vid export av meddelanden till HTML‑format. Denna funktion ger större flexibilitet i hur resurser länkas i den genererade HTML‑filen, vilket underlättar delning och visning av sparade e‑postmeddelanden på olika system. För att spara resurser med relativa sökvägar, använd HtmlSaveOptions.UseRelativePathToResources egenskapen. Standardvärdet för egenskapen är false (resurser sparas med absoluta sökvägar). När den sätts till true sparas resurser med relativa sökvägar.

HTML‑filer med relativa sökvägar är mer portabla och kan visas korrekt oavsett den hostande miljöns filstruktur. Du kan välja mellan absoluta och relativa sökvägar beroende på kraven. Du kan definiera anpassade sökvägar för resurser med hjälp av ResourceHtmlRendering händelse.

Följande kodexempel demonstrerar hur man sparar ett e‑postmeddelande med standard relativ sökväg till resurser:

var msg = MapiMessage.Load(sourceFileName);

var htmlSaveOptions = new HtmlSaveOptions
{
    ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
    UseRelativePathToResources = true
};

msg.Save(Path.Combine("target_files"), htmlSaveOptions);

I detta fall kommer resurser att sparas i mappen [html filnamn]_files, på samma sökväg som .html‑filen och HTML‑filen kommer att referera till resurserna via relativa sökvägar.

Kodexemplet nedan demonstrerar hur man sparar med absolut sökväg till resurser:

var msg = MapiMessage.Load(sourceFileName);

var htmlSaveOptions = new HtmlSaveOptions
{
    ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
    UseRelativePathToResources = false
};

msg.Save(Path.Combine("target_files"), htmlSaveOptions);

Som i det första fallet kommer resurser att sparas i mappen [html filnamn]_files som standard, men HTML‑filen kommer att referera till resurser med absoluta sökvägar.

Genom att använda ResourceHtmlRendering händelse kan du ange anpassade relativa eller absoluta sökvägar för resurser. När du anpassar sökvägar med ResourceHtmlRendering händelsehanterare, och eftersom UseRelativePathToResources är satt till true, bör du tilldela en relativ sökväg till PathToResourceFile egenskap för att säkerställa korrekt referens.

Följande kodexempel demonstrerar hur man anpassar relativ sökväg med hjälp av ResourceHtmlRendering‑händelsen

var msg = MapiMessage.Load(sourceFileName);

var htmlSaveOptions = new HtmlSaveOptions
{
    ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
    UseRelativePathToResources = true
};

htmlSaveOptions.ResourceHtmlRendering += (o, args) =>
{
    if (o is AttachmentBase attachment)
    {
	    // Since UseRelativePathToResources = true, you should assign a relative path to the PathToResourceFile property.
        args.PathToResourceFile = $@"images\{attachment.ContentType.Name}";
    }
};

msg.Save(Path.Combine(targetPath, "A Day in the Park.html"), htmlSaveOptions);

Konvertera MSG till MIME‑meddelanden

Aspose.Email API ger möjlighet att konvertera MSG‑filer till MIME‑meddelanden med hjälp av ToMailMessage metod.

Ställ in timeout för meddelandekonvertering och -laddning

Följande funktioner gör det möjligt att sätta timeout i millisekunder för konverterings- och laddningsprocessen:

Kodexemplet nedan visar hur du anger en timeout under konvertering av ett meddelande:

var options = new MailConversionOptions();
// Set the timeout to 5 seconds
options.Timeout = 5000;

options.TimeoutReached += (object sender, EventArgs args) =>
{
    string subj = (sender as MailMessage).Subject;
	 // Set a flag indicating the timeout was reached
    isTimedOut = true;
};

var mailMessage = mapiMessage.ToMailMessage(options);

MSG till EML konvertering med bevarande av RTF‑kropp

Konverteringen av en MSG‑fil till EML med bevarande av RTF‑kroppen kan göras på två sätt:

Båda egenskaperna hämtar eller sätter ett värde som indikerar om RTF‑kroppen ska behållas i MailMessage.

Följande kodsnuttar visar hur man konverterar en MSG‑fil till EML och bevarar RTF‑kroppen:

var loadOptions = new MsgLoadOptions
{
    PreserveRtfContent = true
};

var eml = MailMessage.Load("my.msg", loadOptions);
var conversionOptions = new MailConversionOptions
{
    PreserveRtfContent = true
};

var msg = MapiMessage.Load("my.msg");

var eml = msg.ToMailMessage(conversionOptions);

Hantera Outlook‑mallfiler (.OFT)

Outlook‑mallar är mycket användbara när du vill skicka ett liknande e‑postmeddelande om och om igen. Istället för att skapa meddelandet från början varje gång, kan du först förbereda meddelandet i Outlook och spara det som en Outlook‑mall (OFT). Därefter, när du behöver skicka meddelandet, kan du skapa det från mallen, vilket sparar tid på att skriva samma text i brödtexten eller ämnesraden, sätta formatering osv. Aspose.Email:s MailMessage klass kan användas för att läsa in och läsa en Outlook-mall (OFT)-fil. När Outlook-mallen har laddats i en instans av MailMessage klass kan du uppdatera avsändare, mottagare, meddelandetext, ämne och andra egenskaper. Efter att ha uppdaterat egenskaperna:

  • Skicka e‑posten med hjälp av SmtpClient klass eller
  • Spara meddelandet som MSG och gör ytterligare uppdateringar/validering med Microsoft Outlook.

I kodexemplen nedan gör vi:

  1. Läs in mallen med hjälp av MailMessage klass.
  2. Uppdatera några av egenskaperna.
  3. Spara meddelandet i MSG-format.

Följande kodsnutt visar hur du laddar OFT‑filen, uppdaterar meddelandet och sparar det i MSG‑format.

Spara MSG‑filer som mallar

Följande kodexempel visar hur du sparar Outlook MSG-filen som en mall.

Bestäm MAPI-meddelandetyp (OFT eller MSG)

När du läser in ett MapiMessage-objekt från en fil kan du behöva avgöra om det inlästa meddelandet är en mallfil eller en vanlig e‑postfil. Genom att använda IsTemplate egenskap hos MapiMessage klassen låter dig exakt upptäcka om ett e‑postmeddelande är en mall eller inte. Denna funktionalitet kan vara värdefull när du hanterar och bearbetar olika typer av e‑postfiler i applikationer och system.

Kodexemplet nedanför demonstrerar hur man avgör om ett MapiMessage är OFT eller MSG:

var msg = MapiMessage.Load("message.msg");
var isOft = msg.IsTemplate; // returns false

var msg = MapiMessage.Load("message.oft");
var isOft = msg.IsTemplate; // returns true

Spara MapiMessage eller MailMessage i OFT-format

Den SaveOptions klassen låter dig ange ytterligare alternativ när du sparar ett MailMessage eller MapiMessage i ett specifikt format.

Följande kodexempel demonstrerar hur man sparar ett meddelande i OFT-format:

// Save the MailMessage to OFT format
using (var eml = MailMessage.Load("message.eml"))
{
    eml.Save("message.oft", SaveOptions.DefaultOft);
	
	// or alternative way #2
	var saveOptions = new MsgSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
    eml.Save("message.oft", saveOptions);
	
	// or alternative  way #3
	saveOptions = SaveOptions.CreateSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
    eml.Save("message.oft", saveOptions);

}

// Save the MapiMessage to OFT format
using (var msg = MapiMessage.Load("message.msg"))
{
    msg.Save("message.oft", SaveOptions.DefaultOft);
	
	// or alternative way #2
	var saveOptions = new MsgSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
    msg.Save("message.oft", saveOptions);
	
	// or alternative  way #3
	saveOptions = SaveOptions.CreateSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
    msg.Save("message.oft", saveOptions);
}

Hantera digitalt signerade meddelanden

Aspose.Email implementerar den kompletta S/MIME e‑postobjekt‑algoritmen. Detta ger API:t fullständig möjlighet att bevara digitala signaturer vid konvertering av meddelanden mellan olika format.

Bevara signatur vid konvertering från EML till MSG

Aspose.Email bevarar den digitala signaturen vid konvertering från EML till MSG. Följande kodexempel visar hur du konverterar från EML till MSG.

Konvertera S/MIME-meddelanden från MSG till EML

Aspose.Email bevarar den digitala signaturen vid konvertering från MSG till EML, som visas i följande kodexempel.

Kontrollera signaturer för säkra e‑postmeddelanden

Följande funktioner finns tillgängliga för att kontrollera signaturen på MapiMessage-objekt.

Kodexemplet nedan visar hur du implementerar funktionerna i ditt projekt:

var msg = MapiMessage.Load(fileName, new EmlLoadOptions());
var result = new SecureEmailManager().CheckSignature(msg);

var certFileName = "cert.pfx";
var cert = new X509Certificate2(certFileName, "pass");
var eml = MapiMessage.Load(fileName);
var store = new X509Store();
store.Open(OpenFlags.ReadWrite);
store.Add(cert);
store.Close();

var result = new SecureEmailManager().CheckSignature(eml, cert, store);

Ta bort signaturer från MapiMessages

För bättre kompatibilitet är MapiMessage.RemoveSignature metod och MapiMessage.IsSigned egenskapen används för att ta bort en digital signatur från ett meddelande.

Följande kodsnutt visar hur du implementerar dessa funktioner i ditt projekt:

var msg = MapiMessage.Load(fileName);

if (msg.IsSigned)
{
    var unsignedMsg = msg.RemoveSignature();
}

Avkryptera MapiMessages med certifikat

Om du har krypterade MAPI‑meddelanden och behöver dekryptera dem med den privata nyckeln som lagras i ett certifikat, kan följande funktioner i Aspose.Email vara användbara:

Följande kodexempel visar hur man arbetar med krypterade MAPI‑meddelanden:

var privateCert = new X509Certificate2(privateCertFile, "password");
var msg = MapiMessage.Load("encrypted.msg");

if (msg.IsEncrypted);
{
    var decryptedMsg = msg.Decrypt(privateCert);
}

Ställ in färgkategorier för MSG-filer

En färgkategori markerar ett e‑postmeddelande för någon form av vikt eller kategori. Microsoft Outlook låter användare tilldela färgkategorier för att särskilja e‑post. För att hantera färgkategorin, använd FollowUpManager. Det innehåller funktioner såsom AddCategory, RemoveCategory, ClearCategories och GetCategories.

  • AddCategory tar MapiMessage och färgkategori‑strängen, till exempel "Purple Category" eller "Red Category", som argument.
  • RemoveCategory tar MapiMessage och färgkategori‑strängen som ska tas bort från meddelandet.
  • ClearCategories används för att ta bort alla färgkategorier från meddelandet.
  • GetCategories används för att hämta alla färgkategorier från ett specifikt meddelande.

Följande exempel utför uppgifterna som anges nedan:

  1. Lägg till en färgkategori.
  2. Lägg till en annan färgkategori.
  3. Hämta listan över alla kategorier.
  4. Ta bort alla kategorier.

Åtkomst till uppföljningsinformation i MSG-filer

Aspose.Email API ger möjlighet att komma åt uppföljningsinformation från ett skickat eller mottaget meddelande. Det kan hämta information om läsbekräftelse, leveransläsbekräftelse och röstningsresultat från en meddelandefil.

Hämta information om läs‑ och leveransbekräftelse

Följande kodexempel visar hur du hämtar information om läs- och leveransbekräftelser.

Skapa vidarebefordran och svarmeddelanden

Aspose.Email API ger möjlighet att skapa och formatera vidarebefordran och svarmeddelanden. ReplyMessageBuilder och ForwardMessageBuilder klasser i API:et används för att respektive skapa svar‑ och vidarebefordrade meddelanden. Ett svar‑ eller vidarebefordrat meddelande kan specificeras att skapas med någon av lägena i OriginalMessageAdditionMode enum. Denna enum har följande värden:

  • OriginalMessageAdditionMode.None – Originalmeddelandet inkluderas inte i svarmeddelandet.
  • OriginalMessageAdditionMode.Attachment – Originalmeddelandet inkluderas som en bilaga i svarmeddelandet
  • OriginalMessageAdditionMode.Textpart – Det ursprungliga meddelandet inkluderas som text i svarets brödtext

Skapa svarmeddelanden

Följande kodsnutt visar hur du skapar ett svarsmail.

Skapa vidarebefordran

Följande kodsnutt visar hur du skapar ett vidarebefordrat meddelande.