
Při odesílání e-mailu můžete potřebovat odeslat multimediální obsah, jako jsou obrázky, audio a video. To je místo, kde přicházejí na řadu MIME (Multipurpose Internet Mail Extensions) zprávy. V tomto článku prozkoumáme, jak programově vytvářet EML zprávy v C#. Na konci článku budete mít přehled o tom, jak vytvářet MIME zprávy, přidávat obrázky do HTML obsahu e-mailu a ukládat e-mail do formátu EML.
- .NET API pro vytvoření MIME zpráv
- Vytvoření EML souboru od nuly
- Přidání obrázku do HTML obsahu
- Vytvoření EML souboru z HTML souboru
- Tipy pro zlepšení zobrazení HTML zprávy v Outlooku
.NET API pro vytvoření MIME zpráv
Než vytvoříte svou první MIME zprávu, prvním krokem je nainstalovat Aspose.Email for .NET do vašeho projektu. Je to mocná knihovna pro vývojáře C#, která poskytuje komplexní sadu nástrojů pro práci s e-mailovými zprávami, včetně schopnosti programově vytvářet MIME zprávy. Knihovna pomáhá vývojářům snadno manipulovat s různými aspekty MIME zpráv, jako jsou přílohy, tělo, hlavička, kódování a další. Knihovnu můžete nainstalovat prostřednictvím NuGet nebo stáhnout její DLL.
PM> Install-Package Aspose.Email
Vytvoření EML souboru od nuly
Protože vaše API bylo nainstalováno, je čas vytvořit váš první eml od nuly. Jeden z nejjednodušších způsobů, jak to udělat, je použít třídu MailMessage z Aspose.Email. Třída MailMessage vám umožňuje vytvořit objekt e-mailové zprávy s různými vlastnostmi a metodami, které vám umožňují nastavit odesílatele, příjemce, předmět, tělo, přílohy, hlavičky a další podrobnosti vašeho e-mailu.
Následující kroky a úryvek kódu vám pomohou vytvořit EML od nuly:
- Vytvořte nový objekt MailMessage pomocí výchozího konstruktoru.
- Nastavte vlastnosti objektu MailMessage podle svých potřeb.
- Uložte objekt MailMessage do EML souboru pomocí metody Save.
// Create a new MailMessage object | |
var eml = new MailMessage() | |
{ | |
// Set the sender address | |
From = "sender@sender.com", | |
// Add a recipient address | |
To = "receiver@receiver.com", | |
// Set the subject | |
Subject = "New message", | |
// Set the HTML body | |
HtmlBody = @"<!DOCTYPE html> | |
<html> | |
<head> | |
<style> | |
h3{font-family:Verdana, sans-serif;color:#000000;background-color:#ffffff;} | |
p {font-family:Verdana, sans-serif;font-size:14px;font-style:normal; | |
font-weight:normal;color:#000000;background-color:#ffffff;} | |
</style> | |
</head> | |
<body> | |
<h3>New message</h3> | |
<p>This is a new message created by Aspose.Email.</p> | |
</body> | |
</html>" | |
}; | |
// Save the MailMessage object to an EML file | |
eml.Save("message.eml", SaveOptions.DefaultEml); |
Metoda Save třídy MailMessage přijímá dva parametry: cestu k souboru a možnosti uložení. Možnosti uložení určují formát výstupního souboru.
Přidání obrázku do HTML obsahu
Pro provedení této funkce musíte vložit obrázek do HTML těla. K tomu můžete použít tag “img”.
Následující úryvek kódu ukazuje, jak přidat obrázek do HTML těla zprávy.
- HTML tělo obsahuje tag obrázku s atributem src nastaveným na
cid:image1
. - Třída AlternateView se používá k získání alternativního pohledu těla zprávy, který obsahuje vložený obrázek.
- Třída LinkedResource se používá k reprezentaci vloženého obrázku a jeho obsahové ID je nastaveno na
image1
. - Nakonec je alternativní pohled přidán do kolekce alternativních pohledů zprávy.
// Create a new instance of MailMessage class | |
var eml = new MailMessage | |
{ | |
// Set sender and recipient | |
From = new MailAddress("sender@domain.com"), | |
To = new MailAddress("recipient@domain.com"), | |
// Set subject and body | |
Subject = "New message with image", | |
HtmlBody = @"<!DOCTYPE html> | |
<html> | |
<head> | |
<style> | |
h3{font-family:Verdana, sans-serif;color:#000000;background-color:#ffffff;} | |
p {font-family:Verdana, sans-serif;font-size:14px;font-style:normal; | |
font-weight:normal;color:#000000;background-color:#ffffff;} | |
</style> | |
</head> | |
<body> | |
<h3>New message</h3> | |
<p>This is a new message created by Aspose.Email.</p> | |
<img src='cid:myImage' /> | |
</body> | |
</html>" | |
}; | |
var alternateView = eml.AlternateViews.GetView(MediaTypeNames.Text.Html); | |
var imageResource = new LinkedResource(path + "image.png", MediaTypeNames.Image.Png) | |
{ | |
ContentId = "image1" | |
}; | |
alternateView.LinkedResources.Add(imageResource); | |
eml.Save("message_with_image.eml", SaveOptions.DefaultEml); |
Vytvoření EML souboru z HTML souboru
Jedním ze způsobů, jak to udělat, je začít s HTML souborem a převést ho na EML. To může být užitečné, pokud máte HTML, které chcete odeslat jako e-mailovou zprávu.
Pro tento účel potřebujeme nejprve mít HTML obsah. Pojmenujme tento soubor content.html
. Zde je jeho příklad:
<!DOCTYPE html>
<html>
<head>
<title>My Email</title>
</head>
<body>
<h1>Ahoj,</h1>
<img src="logo.png" alt="Logo">
<p>Toto je můj první e-mail vytvořený z HTML.</p>
</body>
</html>
Také musíte předem připravit všechny obrázky, které obsahují HTML, a uvést k nim správnou cestu v HTML souboru.
Nyní můžeme snadno vytvořit MailMessage nastavením HTML těla z content.html
.
- Nejprve vytvořte nový objekt HtmlLoadOptions.
- Nastavte řetězec, který obsahuje cestu k obrázkům v PathToResources.
- Nastavte vlastnost ShouldAddPlainTextView na true, pokud by EML měl obsahovat AlternateView s prostým textem.
- Vytvořte objekt MailMessage načtením HTML souboru a předáním objektu HtmlLoadOptions jako parametru.
- Nastavte další vlastnosti zprávy.
- Nakonec uložte objekt MailMessage do EML souboru pomocí metody Save.
var htmlloadOptions = new HtmlLoadOptions | |
{ | |
PathToResources = path, | |
ShouldAddPlainTextView = true | |
}; | |
var eml = MailMessage.Load(path + @"content.html", htmlloadOptions); | |
// Set sender and recipient | |
eml.From = new MailAddress("sender@domain.com"); | |
eml.To = new MailAddress("recipient@domain.com"); | |
// Set subject | |
eml.Subject = "New message from HTML"; | |
// Save the message in EML format | |
eml.Save("message_from_html.eml", SaveOptions.DefaultEml); |
Tipy pro zlepšení zobrazení HTML zprávy v Outlooku
Aby bylo možné zobrazit vaši HTML zprávu v Outlooku, musíte se ujistit, že její kód je kompatibilní s renderovacím enginem Outlooku, který se liší od většiny webových prohlížečů. Některé běžné problémy, které mohou ovlivnit váš HTML e-mail v Outlooku, jsou:
- Outlook nepodporuje některé ze svých tagů a CSS vlastností, jako jsou pozadí obrázky, floaty, okraje, paddingy atd. Můžete potřebovat použít inline styly, tabulky nebo podmíněné komentáře k dosažení požadovaného rozložení a formátování.
- Outlook může přidávat další mezery nebo řádky mezi prvky nebo úplně odstraňovat některé prvky. Můžete potřebovat použít neprolomitelné mezery, nulové šířky mezery nebo prázdné buňky tabulky, abyste tomu zabránili.
- Outlook může změnit kódování nebo znakové sady vašeho HTML souboru, což může způsobit, že se některé znaky zobrazí nesprávně. Můžete potřebovat specifikovat kódování a znakové sady pomocí meta tagu.
Závěr
V tomto blogovém příspěvku jste se naučili, jak programově vytvářet MIME zprávy v C# pomocí Aspose.Email. Krok za krokem tutoriál a úryvky kódu ukázaly, jak vytvořit EML soubor od nuly a z HTML souboru, přidat obrázek do HTML obsahu e-mailové zprávy a podpořit vše výše uvedené s užitečnými tipy, jak zlepšit zobrazení vaší HTML zprávy v Outlooku.
- Můžete prozkoumat více o Aspose.Email for .NET a vyzkoušet to zdarma.
- Můžete také zkontrolovat další funkce a funkčnosti Aspose.Email v dokumentaci.
- Vaše dotazy jsou vítány na našem fóru.