Správa zpráv Outlook
Uložit e‑mail jako HTML
Aspose.Email umožňuje ukládat e‑mailové prostředky s relativními cestami při exportu zpráv do formátu HTML. Tato funkce poskytuje větší flexibilitu v tom, jak jsou prostředky propojeny ve výstupním souboru HTML, což usnadňuje sdílení a zobrazování uložených e‑mailů na různých systémech. Pro uložení prostředků s relativními cestami použijte HtmlSaveOptions.UseRelativePathToResources vlastnosti. Výchozí hodnota vlastnosti je false (prostředky jsou ukládány s absolutními cestami). Když je nastavena na true, prostředky jsou ukládány s relativními cestami.
HTML soubory s relativními cestami jsou přenosnější a mohou být zobrazeny správně bez ohledu na strukturu souborů v hostitelském prostředí. Můžete si vybrat mezi absolutními a relativními cestami podle požadavků. Vlastní cesty pro prostředky můžete definovat pomocí ResourceHtmlRendering událost.
Následující ukázka kódu demonstruje, jak uložit e‑mail s výchozí relativní cestou k prostředkům:
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
UseRelativePathToResources = true
};
msg.Save(Path.Combine("target_files"), htmlSaveOptions);
V tomto případě budou prostředky uloženy do složky [html file name]_files, ve stejné cestě jako soubor .html, a HTML bude odkazovat na prostředky pomocí relativních cest.
Níže uvedený ukázkový kód demonstruje, jak uložit s absolutní cestou k prostředkům:
var msg = MapiMessage.Load(sourceFileName);
var htmlSaveOptions = new HtmlSaveOptions
{
ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
UseRelativePathToResources = false
};
msg.Save(Path.Combine("target_files"), htmlSaveOptions);
Stejně jako v prvním případě budou prostředky ve výchozím nastavení uloženy do složky [html file name]_files, ale HTML bude odkazovat na prostředky pomocí absolutních cest.
Použitím ResourceHtmlRendering události můžete nastavit vlastní relativní nebo absolutní cesty pro zdroje. Při přizpůsobování cest pomocí ResourceHtmlRendering obslužná rutina události a protože UseRelativePathToResources je nastaveno na true, měli byste přiřadit relativní cestu k PathToResourceFile vlastnost pro zajištění správného odkazování.
Následující ukázka kódu demonstruje, jak přizpůsobit relativní cestu pomocí události ResourceHtmlRendering
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);
Převést MSG na MIME zprávy
Aspose.Email API poskytuje možnost konverze souborů MSG na MIME zprávy pomocí ToMailMessage metoda.
Nastavit časové limity pro převod zprávy a načítání
Následující funkce vám umožní nastavit časový limit v milisekundách pro proces převodu a načítání:
-
MailConversionOptions.Timeout vlastnost – omezí čas v milisekundách při převodu zprávy.
-
MailConversionOptions.TimeoutReached - Vyvoláno, pokud vyprší čas při převodu na MailMessage.
-
MsgLoadOptions.Timeout - Omezuje čas v milisekundách během konverze zprávy.
-
MsgLoadOptions.TimeoutReached - Vyvoláno, pokud vyprší čas při převodu na MailMessage.
Níže uvedená ukázka kódu vám ukáže, jak nastavit časový limit při převodu zprávy:
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);
Převod MSG na EML se zachováním těla RTF
Převod souboru MSG na EML při zachování těla RTF lze provést dvěma způsoby:
-
použitím MsgLoadOptions.PreserveRtfContent vlastnost třídy MsgLoadOptions class;
-
použitím MailConversionOptions.PreserveRtfContent vlastnost třídy MailConversionOptions class;
Obě vlastnosti získávají nebo nastavují hodnotu, která určuje, zda zachovat tělo rtf v MailMessage.
Následující ukázky kódu ukazují, jak převést soubor MSG na EML a zachovat tělo ve formátu RTF:
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);
Zpracování souborů šablon Outlooku (.OFT)
Šablony Outlooku jsou velmi užitečné, když chcete opakovaně odesílat podobnou e‑mailovou zprávu. Místo toho, aby jste zprávu pokaždé připravovali od nuly, nejprve ji připravte v Outlooku a uložte jako Outlook Template (OFT). Poté, kdykoli potřebujete zprávu odeslat, můžete ji vytvořit ze šablony, čímž ušetříte čas při psaní stejného textu v těle nebo předmětu, nastavení formátování a podobně. Aspose.Email nabízí MailMessage třída může být použita k načtení a čtení souboru šablony Outlook (OFT). Jakmile je šablona Outlook načtena v instanci MailMessage třídy, můžete aktualizovat odesílatele, příjemce, tělo, předmět a další vlastnosti. Po aktualizaci vlastností:
- Odeslat e‑mail pomocí SmtpClient třídu nebo
- Uložit zprávu jako MSG a provést další aktualizace/validace pomocí Microsoft Outlook.
V níže uvedených ukázkách kódu děláme:
- Načíst šablonu pomocí MailMessage třída.
- Aktualizovat některé vlastnosti.
- Uložit zprávu ve formátu MSG.
Následující úryvek kódu ukazuje, jak načíst soubor OFT, aktualizovat zprávu a uložit ji ve formátu MSG.
Uložit soubory MSG jako šablony
Následující úryvek kódu vám ukazuje, jak uložit soubor Outlook MSG jako šablonu.
Určit typ MAPI zprávy (OFT nebo MSG)
Při načítání objektu MapiMessage ze souboru můžete potřebovat zjistit, zda je načtená zpráva souborem šablony nebo běžným e‑mailem. Použitím IsTemplate vlastnost třídy MapiMessage třída, pomocí které můžete přesně zjistit, zda je e‑mail šablonou nebo ne. Tato funkčnost může být užitečná při zpracování různých typů e‑mailových souborů v aplikacích a systémech.
Níže uvedený příklad kódu ukazuje, jak zjistit, zda je MapiMessage formátu OFT nebo 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
Uložit MapiMessage nebo MailMessage ve formátu OFT
The SaveOptions třída umožňuje specifikovat další možnosti při ukládání MailMessage nebo MapiMessage do konkrétního formátu.
Následující ukázkový kód demonstruje, jak uložit zprávu do formátu OFT:
// 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);
}
Správa digitálně podepsaných zpráv
Aspose.Email implementuje kompletní algoritmus S/MIME e‑mailových objektů. To poskytuje API plnou moc zachovat digitální podpisy při převodu zpráv mezi formáty.
Zachovat podpis během převodu EML na MSG
Aspose.Email zachovává digitální podpis při konverzi z EML do MSG. Následující úryvek kódu vám ukazuje, jak provést konverzi z EML do MSG.
Převést S/MIME zprávy z MSG na EML
Aspose.Email zachovává digitální podpis při konverzi z MSG do EML, jak je ukázáno v následujícím úryvku kódu.
Kontrola podpisů zabezpečených e‑mailů
Následující funkce jsou k dispozici pro kontrolu podpisu objektů MapiMessage.
- SecureEmailManager třída pro kontrolu podpisu zabezpečených e‑mailů.
- SmimeResult třída pro uložení výsledků kontroly.
- SecureEmailManager.CheckSignature(MapiMessage msg) metoda.
- SecureEmailManager.CheckSignature(MapiMessage msg, X509Certificate2 certificateForDecrypt) metoda.
- SecureEmailManager.CheckSignature(MapiMessage msg, X509Certificate2 certificateForDecrypt, X509Store store) metoda.
Níže uvedený ukázkový kód ukazuje, jak implementovat funkce ve vašem projektu:
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);
Odstranit podpisy z MapiMessage
Pro lepší kompatibilitu, MapiMessage.RemoveSignature metoda a MapiMessage.IsSigned vlastnosti se používají k odebrání digitálního podpisu ze zprávy.
Následující úryvek kódu ukazuje, jak implementovat tyto funkce do vašeho projektu:
var msg = MapiMessage.Load(fileName);
if (msg.IsSigned)
{
var unsignedMsg = msg.RemoveSignature();
}
Dešifrovat MapiMessage pomocí certifikátů
Pokud máte šifrované MAPI zprávy a potřebujete je dešifrovat pomocí soukromého klíče uloženého v certifikátu, mohou být užitečné následující funkce Aspose.Email:
- MapiMessage.IsEncrypted - Získá hodnotu, která určuje, zda je zpráva šifrována.
- MapiMessage.Decrypt() - Dešifruje tuto zprávu (metoda prohledává úložiště My aktuálního uživatele a počítače pro příslušný certifikát a soukromý klíč).
- MapiMessage.Decrypt(X509Certificate2 certificate) - Dešifruje tuto zprávu pomocí certifikátu.
Následující úryvek kódu ukazuje, jak pracovat s šifrovanými MAPI zprávami:
var privateCert = new X509Certificate2(privateCertFile, "password");
var msg = MapiMessage.Load("encrypted.msg");
if (msg.IsEncrypted);
{
var decryptedMsg = msg.Decrypt(privateCert);
}
Nastavit barevné kategorie pro soubory MSG
Barevná kategorie označuje e‑mailovou zprávu určitým způsobem důležitosti nebo kategorie. Microsoft Outlook umožňuje uživatelům přiřadit barevné kategorie k rozlišení e‑mailů. Pro práci s barevnou kategorií použijte FollowUpManager. Obsahuje funkce jako například AddCategory, RemoveCategory, ClearCategories a GetCategories.
- AddCategory přebírá MapiMessage a řetězec barevné kategorie, např. "Fialová kategorie" nebo "Červená kategorie" jako argumenty.
- RemoveCategory přebírá MapiMessage a řetězec barevné kategorie, který má být ze zprávy odstraněn.
- ClearCategories slouží k odstranění všech barevných kategorií ze zprávy.
- GetCategories slouží k načtení všech barevných kategorií z konkrétní zprávy.
Následující příklad provádí úkoly uvedené níže:
- Přidat barevnou kategorii.
- Přidat další barevnou kategorii.
- Načíst seznam všech kategorií.
- Odstranit všechny kategorie.
Přístup k informacím o následném zpracování v souborech MSG
Aspose.Email API poskytuje možnost přístupu k informacím o následném zpracování ze zaslané nebo přijaté zprávy. Může získat informace o přečtení, potvrzení doručení a výsledcích hlasování ze souboru zprávy.
Získat informace o doručení a přečtení
Následující úryvek kódu vám ukazuje, jak získat informace o potvrzení přečtení a doručení.
Vytvořit zprávy pro přeposlání a odpověď
Aspose.Email API poskytuje možnost vytvářet a formátovat zprávy pro přeposlání a odpověď. Aspose.Email API poskytuje možnost vytvářet a formátovat zprávy předání a odpovědi. The a ReplyMessageBuilder ForwardMessageBuilder třídy API jsou použity k vytvoření odpovědních a předávacích zpráv. Odpověď nebo předání může být vytvořeno pomocí libovolného z režimů OriginalMessageAdditionMode
- výčtový typ. Tento výčtový typ má následující hodnoty:
- OriginalMessageAdditionMode.None – Původní zpráva není zahrnuta v odpovědi.
- OriginalMessageAdditionMode.Textpart – Původní zpráva je zahrnuta jako text v těle odpovědní zprávy
Vytvořit odpovědi
Následující úryvek kódu ukazuje, jak vytvořit odpovědní zprávu.
Vytvořit zprávy pro přeposlání
Následující úryvek kódu ukazuje, jak vytvořit odpovědní zprávu.