Beheren van Outlook‑berichten

E‑mails opslaan als HTML

Aspose.Email maakt het mogelijk om e‑mailbronnen op te slaan met relatieve paden bij het exporteren van berichten naar HTML‑formaat. Deze functie biedt meer flexibiliteit in de manier waarop bronnen worden gekoppeld in het gegenereerde HTML‑bestand, waardoor het eenvoudiger wordt om opgeslagen e‑mails op verschillende systemen te delen en weer te geven. Om bronnen met relatieve paden op te slaan, gebruikt u HtmlSaveOptions.UseRelativePathToResources eigenschap. De standaardwaarde van de eigenschap is false (bronnen worden opgeslagen met absolute paden). Wanneer ingesteld op true, worden bronnen opgeslagen met relatieve paden.

HTML‑bestanden met relatieve paden zijn draagbaarder en kunnen correct worden weergegeven ongeacht de bestandsstructuur van de hostingomgeving. U kunt kiezen tussen absolute en relatieve paden afhankelijk van de eisen. U kunt aangepaste paden voor bronnen definiëren met behulp van de ResourceHtmlRendering event.

Het volgende codevoorbeeld toont hoe u een e‑mail opslaat met het standaard relatieve pad naar bronnen:

var msg = MapiMessage.Load(sourceFileName);

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

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

In dit geval worden bronnen opgeslagen in de map [html‑bestandsnaam]_files, op hetzelfde pad als het .html‑bestand, en de HTML verwijst naar de bronnen via relatieve paden.

Het onderstaande codevoorbeeld toont hoe u opslaat met een absoluut pad naar bronnen:

var msg = MapiMessage.Load(sourceFileName);

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

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

Zoals in het eerste geval, worden bronnen standaard opgeslagen in de map [html‑bestandsnaam]_files, maar de HTML verwijst naar de bronnen met absolute paden.

Door gebruik te maken van de ResourceHtmlRendering event kunt u aangepaste relatieve of absolute paden voor bronnen instellen. Bij het aanpassen van paden met de ResourceHtmlRendering event‑handler, en aangezien UseRelativePathToResources is true ingesteld, moet u een relatief pad toewijzen aan de PathToResourceFile eigenschap om correcte verwijzingen te waarborgen.

Het volgende codevoorbeeld toont hoe u een aangepast relatief pad kunt gebruiken met behulp van het ResourceHtmlRendering‑event

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);

MSG naar MIME‑berichten converteren

Aspose.Email API biedt de mogelijkheid om MSG‑bestanden te converteren naar MIME‑berichten met behulp van de ToMailMessage methode.

Time‑outs instellen voor berichtconversie en -laden

De volgende functies stellen u in staat de time‑out in milliseconden in te stellen voor het conversie‑ en laadproces:

Het onderstaande codevoorbeeld toont hoe u een time‑out instelt tijdens het converteren van een bericht:

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 naar EML conversie met behoud van RTF‑inhoud

Het converteren van een MSG‑bestand naar EML met behoud van de RTF‑inhoud kan op twee manieren worden uitgevoerd:

Beide eigenschappen krijgen of stellen een waarde in die aangeeft of de rtf‑inhoud in MailMessage moet worden behouden.

De volgende codefragmenten tonen hoe u een MSG‑bestand naar EML converteert en de RTF‑inhoud behoudt:

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);

Outlook‑sjabloonbestanden (.OFT) verwerken

Outlook‑sjablonen zijn erg handig wanneer u dezelfde e‑mail meerdere keren wilt versturen. In plaats van elke keer het bericht van nul af aan op te stellen, maakt u eerst het bericht in Outlook aan en slaat u het op als een Outlook‑sjabloon (OFT). Vervolgens kunt u, wanneer u het bericht moet verzenden, het vanuit het sjabloon aanmaken, waardoor u tijd bespaart omdat u niet telkens dezelfde tekst in de inhoud of het onderwerp hoeft in te voeren, opmaak hoeft in te stellen, enzovoort. Aspose.Email’s MailMessage klasse kan worden gebruikt om een Outlook‑sjabloon (OFT)-bestand te laden en te lezen. Zodra het Outlook‑sjabloon is geladen in een instantie van de MailMessage klasse, kunt u afzender, ontvanger, inhoud, onderwerp en andere eigenschappen bijwerken. Na het bijwerken van de eigenschappen:

  • Verzend de e‑mail met behulp van de SmtpClient klasse of
  • Sla het bericht op als MSG en voer verdere updates/validaties uit met Microsoft Outlook.

In de onderstaande codevoorbeelden doen we:

  1. Laad de sjabloon met behulp van de MailMessage klasse.
  2. Werk enkele eigenschappen bij.
  3. Sla het bericht op in MSG‑formaat.

Het volgende codefragment toont hoe u het OFT‑bestand laadt, het bericht bijwerkt en opslaat in MSG‑formaat.

MSG‑bestanden opslaan als sjablonen

Het volgende codefragment toont hoe u het Outlook MSG‑bestand als sjabloon kunt opslaan.

Bepaal MAPI-berichttype (OFT of MSG)

Bij het laden van een MapiMessage-object uit een bestand, moet u mogelijk bepalen of het geladen bericht een sjabloonbestand of een regulier e‑mailbestand is. Door gebruik te maken van de IsTemplate eigenschap van de MapiMessage klasse, u kunt nauwkeurig detecteren of een e‑mail een sjabloon is of niet. Deze functionaliteit kan waardevol zijn bij het omgaan met en verwerken van verschillende soorten e‑mailbestanden binnen applicaties en systemen.

Het onderstaande codevoorbeeld toont hoe u kunt bepalen of een MapiMessage OFT of MSG is:

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

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

MapiMessage of MailMessage opslaan in OFT-formaat

De SaveOptions klasse stelt u in staat extra opties op te geven bij het opslaan van een MailMessage of MapiMessage naar een specifiek formaat.

Het volgende codevoorbeeld laat zien hoe u een bericht opslaat in OFT-formaat:

// 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);
}

Beheren van digitaal ondertekende berichten

Aspose.Email implementeert het volledige S/MIME‑e‑mailobject‑algoritme. Hierdoor heeft de API volledige mogelijkheid om digitale handtekeningen te behouden bij het converteren van berichten tussen formaten.

Handtekening behouden tijdens EML‑naar‑MSG‑conversie

Aspose.Email behoudt de digitale handtekening bij het converteren van EML naar MSG. Het volgende codefragment toont hoe u van EML naar MSG converteert.

Converteer S/MIME-berichten van MSG naar EML

Aspose.Email behoudt de digitale handtekening bij het converteren van MSG naar EML, zoals getoond in het volgende codefragment.

Handtekeningen van beveiligde e‑mails controleren

De volgende functies zijn beschikbaar om de handtekening van MapiMessage-objecten te controleren.

Het onderstaande codevoorbeeld laat zien hoe u de functies in uw project implementeert:

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);

Handtekeningen verwijderen van MapiMessages

Voor betere compatibiliteit, de MapiMessage.RemoveSignature methode en MapiMessage.IsSigned eigenschap wordt gebruikt om een digitale handtekening van een bericht te verwijderen.

De volgende codefragment toont hoe u deze functies in uw project implementeert:

var msg = MapiMessage.Load(fileName);

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

MapiMessages decoderen met certificaten

Als u versleutelde MAPI‑berichten hebt en ze moet ontcijferen met de privésleutel die in een certificaat is opgeslagen, kunnen de volgende functies van Aspose.Email nuttig zijn:

Het volgende codefragment laat zien hoe u met versleutelde MAPI‑berichten werkt:

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

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

Kleurcategorieën instellen voor MSG‑bestanden

Een kleurcategorie markeert een e‑mailbericht voor een bepaalde belangrijkheid of categorie. Microsoft Outlook laat gebruikers kleurcategorieën toewijzen om e‑mails te onderscheiden. Om de kleurcategorie te verwerken, gebruikt u de FollowUpManager. Het bevat functies zoals AddCategory, RemoveCategory, ClearCategories en GetCategories.

  • AddCategory takes MapiMessage en de kleurcategorie‑tekst, bijvoorbeeld "Paarse categorie" of "Rode categorie", als argumenten.
  • RemoveCategory takes MapiMessage en de te verwijderen kleurcategorie‑tekst uit het bericht.
  • ClearCategories wordt gebruikt om alle kleurcategorieën uit het bericht te verwijderen.
  • GetCategories wordt gebruikt om alle kleurcategorieën uit een bepaald bericht op te halen.

Het volgende voorbeeld voert de onderstaande taken uit:

  1. Voeg een kleurcategorie toe.
  2. Voeg een andere kleurcategorie toe.
  3. Haal de lijst met alle categorieën op.
  4. Verwijder alle categorieën.

Follow‑up‑informatie in MSG‑bestanden openen

Aspose.Email API biedt de mogelijkheid om vervolg‑informatie van een verzonden of ontvangen bericht op te vragen. Het kan de lees‑, bezorgings‑ontvangst‑ en stemresultaatinformatie uit een berichtbestand ophalen.

Informatie over lees- en bezorgingsontvangst ophalen

De volgende codefragment toont hoe u lees- en bezorgingsontvangstinformatie kunt ophalen.

Doorstuur- en antwoordberichten maken

Aspose.Email API biedt de mogelijkheid om doorstuur- en antwoordberichten te maken en op te maken. De ReplyMessageBuilder en ForwardMessageBuilder klassen van de API worden respectievelijk gebruikt om antwoord- en doorgestuurde berichten te maken. Een antwoord‑ of doorgestuurd bericht kan worden opgegeven om te worden aangemaakt met een van de modi van OriginalMessageAdditionMode enum. Deze enum heeft de volgende waarden:

  • OriginalMessageAdditionMode.None - Het originele bericht wordt niet opgenomen in het antwoordbericht.
  • OriginalMessageAdditionMode.Attachment - Het originele bericht wordt als bijlage toegevoegd aan het antwoordbericht
  • OriginalMessageAdditionMode.Textpart - Het originele bericht wordt als tekst toegevoegd in de body van het antwoordbericht

Antwoordberichten maken

Het volgende codefragment laat zien hoe u een antwoordbericht maakt.

Doorstuurberichten maken

Het volgende codefragment laat zien hoe je een doorgestuurd bericht maakt.