Vytvářejte zprávy MIME pomocí C#

MIME (Multipurpose Internet Mail Extensions) je široce používaný standard pro formátování a výměnu e-mailových zpráv a dalších typů obsahu přes internet. Umožňuje zahrnutí různých typů médií, jako je text, obrázky, zvuk a video, do jedné e-mailové zprávy. V tomto článku prozkoumáme, jak vytvořit EML zprávy programově v Python. Na konci článku budete mít jasno v tom, jak vytvářet zprávy MIME, přidávat obrázky do obsahu HTML e-mailu a ukládat e-maily do formátu EML.

API pro vytváření MIME zpráv v Python

Chcete-li vytvořit zprávu MIME, musíte dodržovat pravidla formátování specifikovaná standardem MIME. To obvykle zahrnuje použití vhodných knihoven nebo modulů poskytovaných programovacími jazyky, jako je Python, ke generování potřebné struktury MIME. Aspose.Email for Python je výkonná knihovna, která poskytuje širokou škálu funkcí pro vytváření, manipulaci a zpracování e-mailových zpráv, což vývojářům usnadňuje začlenění úloh souvisejících s e-mailem do jejich projektů Python. Je navržen pro práci s různými formáty a napříč různými platformami. API můžete snadno nainstalovat přes PyPI nebo stáhnout jeho DLL.

> pip install Aspose.Email-for-Python-via-NET

Vytvořte soubor EML od nuly

K vytvoření nové e-mailové zprávy použijeme třídu MailMessage z Aspose.Email. Třída má všechny nezbytné metody a vlastnosti pro určení odesílatele, příjemce, předmětu a těla HTML. Zpráva je poté uložena jako soubor EML s názvem „message.eml“.

Proces vytváření nového souboru eml lze popsat v následujících krocích:

  • Importujte požadované třídy z modulu aspose.email.
  • Vytvořte novou instanci třídy MailMessage pomocí výchozího konstruktoru.
  • Nastavte vlastnosti objektu MailMessage podle svých potřeb: adresa odesílatele, adresa příjemce, předmět, tělo HTML atd.
  • Definujte strukturu a obsah HTML. V našem příkladu je jednoduchá struktura HTML opatřena nadpisem a odstavcem.
  • Uložte objekt MailMessage do souboru EML pomocí metody uložení. V našem příkladu bude název souboru “message.eml”.

Níže uvedená ukázka kódu vám ukáže, jak programově vytvořit EML od začátku:

from aspose.email import MailMessage, MailAddress, LinkedResource, SaveOptions

# Vytvořte novou instanci třídy MailMessage
eml = MailMessage()

# Nastavte odesílatele a příjemce
eml.from_address = MailAddress("sender@domain.com")
eml.to.append(MailAddress("receiver@receiver.com"))

# Nastavte předmět a tělo
eml.subject = "New message with image"
eml.html_body = """<!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>"""

#  Uložte objekt MailMessage do souboru EML
eml.save("message.eml", SaveOptions.default_eml)

Metoda ukládání třídy MailMessage má dva parametry: cestu k souboru a možnosti uložení. Volby uložení určují formát výstupního souboru.

Přidejte obrázek k obsahu HTML

V této sekci vložíme obrázek do e-mailu pomocí třídy LinkedResource stejného API. Třída představuje vložený prostředek ve zprávě. Poté zprávu uložíme jako soubor EML s názvem „messagewithimage.eml“.

Postupujte podle pokynů.

  • Importujte požadované třídy z modulu aspose.email.
  • Vytvořte novou instanci třídy MailMessage pomocí výchozího konstruktoru.
  • Nastavte vlastnosti objektu MailMessage podle svých potřeb.
  • Tělo HTML obsahuje značku obrázku se zdrojovým atributem nastaveným na cid:myImage.
  • Třída AlternateView se používá k získání alternativního pohledu na tělo zprávy, které obsahuje vložený obrázek.
  • Třída LinkedResource se používá k reprezentaci vloženého obrázku a jeho ID obsahu je nastaveno na image1.
  • Nakonec je alternativní zobrazení přidáno do kolekce alternativních zobrazení zpráv.

Zkuste následující ukázku kódu přidat obrázek do obsahu HTML:

from aspose.email import MailMessage, MailAddress, LinkedResource, SaveOptions
from aspose.email.mime import MediaTypeNames

# Vytvořte novou instanci třídy MailMessage
eml = MailMessage()

# Nastavte odesílatele a příjemce
eml.from_address = MailAddress("sender@domain.com")
eml.to.append(MailAddress("receiver@receiver.com"))

# Nastavte předmět a tělo
eml.subject = "New message with image"
eml.html_body = """<!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>"""

# Přidejte zdroj obrázku do alternativních zobrazení
for alternate_view in eml.alternate_views:
    if alternate_view.content_type.media_type == "text/html":
        image_resource = LinkedResource("image.png", "image/png")
        image_resource.content_id = "myImage"
        alternate_view.linked_resources.append(image_resource)

# Uložte MailMessage jako soubor EML
eml.save("message_with_image.eml", SaveOptions.default_eml)

Vytvořte soubor EML ze souboru HTML

Knihovna Aspose.Email for Python poskytuje snadný způsob, jak načíst, upravit a uložit soubor HTML jako soubor EML. Tento proces převodu může být užitečný, pokud máte HTML, který chcete odeslat jako e-mailovou zprávu. Pro tento účel použijeme třídu HtmlLoadOptions. Třída umožňuje specifikovat další možnosti při načítání MailMessage z formátu Html. Nejprve musíme mít obsah HTML. V našem příkladu to bude soubor s názvem content.html.

<!DOCTYPE html>
<html>
<head>
	<title>My Email</title>
</head>
<body>
	<h1>Hello,</h1>
	<img src="logo.png" alt="Logo">
	<p>This is my first email created form HTML.</p>
</body>
</html>

Také musíte předem připravit všechny obrázky, které obsahují HTML, a zadat správnou cestu k nim v souboru HTML.

Nyní můžeme snadno vytvořit MailMessage nastavením těla HTML z content.html.

  • Importujte požadované třídy z modulu aspose.email.
  • Vytvořte instanci HtmlLoadOptions pro určení možností načítání pro objekt souboru HTML.
  • Ve vlastnosti pathtoresources nastavte řetězec, který obsahuje cestu k obrázkům.
  • Nastavte vlastnost shouldaddplaintextview na hodnotu True, pokud má EML obsahovat AlternateView s prostým textem.
  • Vytvořte novou instanci MailMessage načtením souboru HTML a předáním objektu HtmlLoadOptions jako parametru.
  • Nastavte další vlastnosti zprávy.
  • Nakonec uložte objekt MailMessage do souboru EML pomocí metody uložení.
from aspose.email import HtmlLoadOptions, MailAddress, MailMessage, SaveOptions

htmlloadOptions = HtmlLoadOptions()
htmlloadOptions.path_to_resources = path
htmlloadOptions.should_add_plain_text_view = True
eml = MailMessage.load(path + str(r"content.html"), htmlloadOptions)

#  Nastavte odesílatele a příjemce
eml.from_address = MailAddress("sender@domain.com")
eml.to = MailAddress("recipient@domain.com")

#  Nastavit předmět
eml.subject = "New message from HTML"

#  Uložte zprávu ve formátu EML
eml.save("message_from_html.eml", SaveOptions.default_eml)

Tipy pro zlepšení zobrazení zprávy HTML v aplikaci Outlook

Pokud jde o odesílání e-mailů ve formátu HTML, je zásadní kompatibilita s různými e-mailovými klienty. Zejména Outlook má své vykreslovací jádro, které se liší od většiny webových prohlížečů, což může vést k problémům s formátováním. Tady jsou některé z nich:

  • Aplikace Outlook nemusí podporovat určité značky HTML a vlastnosti CSS běžně používané ve webových prohlížečích. Prvky jako obrázky na pozadí, plovoucí plochy, okraje a odsazení se nemusí vykreslit podle očekávání. Chcete-li to překonat, je nezbytné používat vložené styly, tabulky nebo podmíněné komentáře k dosažení požadovaného rozvržení a formátování v aplikaci Outlook.
  • Aplikace Outlook může mezi prvky vložit další mezery nebo čáry nebo dokonce některé prvky zcela odstranit, což naruší váš pečlivě vytvořený návrh. Ke zmírnění tohoto problému může strategické použití pevných mezer, mezer s nulovou šířkou nebo prázdných buněk tabulky pomoci zachovat zamýšlenou strukturu a zabránit nežádoucí manipulaci s prvky v aplikaci Outlook.
  • Vykreslovací modul aplikace Outlook může změnit kódování nebo znakovou sadu vašeho souboru HTML, což má za následek zkomolené nebo nesprávně zobrazené znaky. Chcete-li zajistit správné vykreslování, explicitně určete kódování a znakovou sadu v kódu HTML pomocí značky metadat. To pomůže aplikaci Outlook přesně interpretovat a zobrazit text a předejít problémům se znaky.

Závěr

Abychom to shrnuli, připomeňme si, jaké problémy byly v tomto článku popsány. Naučili jste se, jak vytvářet MIME zprávy programově v Python pomocí Aspose.Email. Díky našim podrobným a podrobným pokynům s ukázkami kódu je výukový program čitelný a snadno srozumitelný.

Vytvořením zpráv MIME mohou odesílatelé e-mailů zajistit, aby jejich komunikace podporovala širokou škálu typů obsahu a poskytovala příjemcům poutavější a interaktivnější zážitek.

  • Můžete prozkoumat více o Aspose.Email for Python a vyzkoušet si to zdarma.
  • Můžete se také podívat na další funkce a funkce Aspose.Email v dokumentaci .
  • Vaše dotazy vítáme na našem fóru.

Viz také