Odesílat e‑maily a přeposílat zprávy pomocí SMTP

The SmtpClient třída v Aspose.Email pro Python přes .NET poskytuje robustní a flexibilní rozhraní pro odesílání e‑mailů pomocí protokolu Simple Mail Transfer Protocol (SMTP). Je hlavním vstupním bodem pro vývojáře, kteří chtějí v aplikacích doručovat e‑mailové zprávy.

Klíčové vlastnosti SmtpClient třída zahrnuje:

  • Doručování e‑mailů pomocí SMTP: Umožňuje odesílání e‑mailů přímo přes SMTP server.

  • Alternativní možnosti doručení: Podporuje další metody doručení, jako je ukládání zpráv do souborového systému nebo zápis do fronty zpráv.

  • Synchronní a asynchronní operace:

    • Synchronous Mode: Použijte metody Send k blokování aktuálního vlákna, dokud není e‑mail plně odeslán.

    • Asynchronní režim: Použijte metody SendAsync k odesílání zpráv na pozadí, což umožní aplikaci zůstat responsivní.

  • Podpora TNEF: Umožňuje odesílání zpráv ve formátu Transport Neutral Encapsulation Format (TNEF) pro kompatibilitu s funkcemi Microsoft Outlook.

Tento článek pokrývá všechny hlavní funkčnosti dostupné prostřednictvím SmtpClient třída, demonstrace, jak odeslat standardní a pokročilé e‑mailové zprávy s plnou kontrolou nad konfigurací a doručením.

Synchronní odesílání e‑mailů

The SmtpClient.send metoda vám umožňuje odeslat e‑mailovou zprávu synchronně. Tento přístup je užitečný, když aplikace potřebuje potvrdit doručení před dalším pokračováním.

Pro synchronní odeslání čistého textového e‑mailu pomocí Aspose.Email pro Python přes .NET použijte níže uvedené kroky a ukázkový kód:

  1. Vytvořte MailMessage instance a nastavte odesílatele, příjemce, předmět a tělo zprávy.
  2. Nastavte SmtpClient s hostitelem serveru, portem, uživatelským jménem a heslem.
  3. Zavolejte send metoda na SmtpClient instance a předat MailMessage objektu.
# Create email
eml = ae.MailMessage()
eml.subject = "Message with Plain Text Body"
eml.body = "This is text body."
eml.from_address = "from@gmail.com"
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1")) 

# Configure SmtpClient object
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO 

# Send email
client.send(eml)

Odeslat předkomponovaný soubor EML přes SMTP

Pokud potřebujete odeslat e‑mailovou zprávu, která již byla vytvořena a uložena ve formátu EML, můžete ji načíst a odeslat programově pomocí Aspose.Email pro Python přes .NET.

Následující ukázka kódu s kroky demonstruje, jak odeslat soubor EML pomocí SmtpClient:

  1. Načtěte soubor EML pomocí MailMessage.load metoda.
  2. Vytvořte a nakonfigurujte instanci SmtpClient, poskytnutím hosta SMTP serveru, uživatelského jména a hesla pro ověření.
  3. Zavolejte send metoda na SmtpClient instanci a předat načtenou zprávu.
import aspose.email as ae

message = ae.MailMessage.load("test.eml")

# Send this message using SmtpClient
client = ae.clients.SmtpClient("host", "username", "password")
client.send(message)

Odeslat e‑mail s prostým textem

Můžete odeslat e‑mail s prostým textem pomocí Aspose.Email zadáním těla zprávy jako jednoduchý text. MailMessage.body vlastnost se používá k definování obsahu, zatímco SmtpClient třída zajišťuje proces odesílání.

Následující ukázka kódu s kroky demonstruje, jak odeslat e‑mail s prostým textem:

  1. Vytvořte instanci MailMessage třída.
  2. Nastavte e‑mailové adresy odesílatele a příjemce.
  3. Přiřaďte prostý textový obsah k vlastnosti body.
  4. Vytvořte instanci SmtpClient třída s podrobnostmi o serveru a přihlašovacími údaji.
  5. Odeslat e‑mail pomocí send metoda.

Odeslat HTML e‑mail

Aspose.Email pro Python přes .NET vám umožňuje odesílat e‑maily s těly formátovanými v HTML pomocí MailMessage třída. Přiřazením HTML obsahu k html_body vlastnost a nastavení is_body_html na True, můžete vytvářet bohaté, stylované zprávy.

Následující ukázka kódu s kroky demonstruje, jak odeslat HTML e‑mail:

  1. Vytvořte instanci MailMessage třída.
  2. Nastavte e‑mailové adresy odesílatele a příjemce.
  3. Nastavit is_body_html = True pro označení HTML formátování.
  4. Přiřaďte svůj HTML obsah k html_body vlastnost.
  5. Vytvořte a nakonfigurujte SmtpClient instance.
  6. Použijte send metoda k přenosu zprávy.

Poznámka: Přestože tento příklad používá základní HTML, můžete zahrnout složitější HTML struktury pro vytvoření responzivních a značkových e‑mailových rozvržení.

Odeslat HTML e‑mail s alternativou v prostém textu

Při odesílání HTML e‑mailů je nejlepší praxí zahrnout verzi v prostém textu pro příjemce, jejichž e‑mailové klienty HTML nepodporují. Aspose.Email pro Python přes .NET nabízí AlternateView třída pro zahrnutí jak HTML, tak prostého textu do jedné zprávy, což zvyšuje kompatibilitu a uživatelský zážitek.

Následující ukázka kódu a kroky demonstrují, jak odeslat e‑mail s alternativním textovým obsahem:

  1. Vytvořte instanci MailMessage třída.
  2. Nastavte e‑mailové adresy odesílatele a příjemce.
  3. Přiřaďte HTML obsah k html_body vlastnost a nastavte is_body_html = True.
  4. Vytvořte Alternativní pohled s prostým textem pomocí create_alternate_view_from_string.
  5. Přidejte alternativní pohled k alternate_views kolekce MailMessage.
  6. Vytvořte a nakonfigurujte SmtpClient instance.
  7. Odeslat e‑mail pomocí send metoda.

Jak odeslat hromadné e‑maily

Odesílání hromadných e‑mailů zahrnuje najednou rozeslání více zpráv — každá může být adresována jinému příjemci. Aspose.Email tuto možnost poskytuje pomocí SmtpClient třída.

Níže uvedená ukázka kódu demonstruje, jak odeslat dávku e‑mailů najednou:

  1. Vytvořte instanci SmtpClient třídu a nakonfigurujte její host, port, přihlašovací údaje a bezpečnostní nastavení.
  2. Vytvořte více MailMessage instance — každá představuje individuální e‑mailovou zprávu.
  3. Zadejte odesílatele, příjemce, předmět a tělo zprávy pro každý e‑mail.
  4. Přidejte všechny MailMessage objekty do MailMessageCollection.
  5. Zavolejte send metoda třídy SmtpClient třída, předává MailMessageCollection jako argument.
import aspose.email as ae
from aspose.email.clients import SmtpClient, SecurityOptions
from aspose.email import MailMessage, MailMessageCollection

# Create individual email messages
message1 = MailMessage("from@gmail.com", "to1@gmail.com", "Bulk Email - Message 1", "Hello, this is message 1.")
message2 = MailMessage("from@gmail.com", "to2@gmail.com", "Bulk Email - Message 2", "Hello, this is message 2.")
message3 = MailMessage("from@gmail.com", "to3@gmail.com", "Bulk Email - Message 3", "Hello, this is message 3.")

# Add messages to a collection
many_messages = MailMessageCollection()
many_messages.append(message1)
many_messages.append(message2)
many_messages.append(message3)

# Configure SMTP client
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO

# Send all messages in bulk
client.send(many_messages)

Odesílat e‑maily s podporou více spojení

Aspose.Email pro Python přes .NET vám umožňuje používat více souběžných spojení při odesílání e‑mailů přes SmtpClient třída. Tato funkce může pomoci optimalizovat výkon při odesílání velkého objemu e‑mailů rozdělením zátěže mezi několik spojení. Pamatujte však, že povolení režimu více spojení nezaručuje zvýšení výkonu ve všech scénářích — závisí na konfiguraci serveru a síťových podmínkách.

Klíčové vlastnosti:

  • use_multi_connection: Povolení nebo zakázání režimu více spojení pro SMTP klienta.

  • connections_quantity: Určuje počet spojení, která se otevřou, když je režim více spojení povolen.

Následující ukázka kódu ukazuje, jak povolit režim více spojení:

  1. Vytvořte a nakonfigurujte instanci SmtpClient.
  2. Nastavte podrobnosti serveru, jako jsou host, port, uživatelské jméno, heslo a šifrování.
  3. Povolte režim více spojení nastavením use_multi_connection.
  4. Určete počet spojení pomocí connections_quantity.
import aspose.email as ae

client = ae.clients.smtp.SmtpClient
client.host = "<HOST>"
client.username = "<USERNAME>"
client.password = "<PASSWORD>"
client.port = 587
client.supported_encryption = ae.clients.base.EncryptionProtocols.TLS
client.security_options = ae.clients.SecurityOptions.SSL_EXPLICIT

client.connections_quantity = 5
client.use_multi_connection = ae.clients.MultiConnectionMode.ENABLE
client.send(messages)

Odeslat e‑maily ve formátu TNEF

Transport Neutral Encapsulation Format (TNEF) je proprietární e‑mailový formát používaný Microsoft Outlook a Exchange k zachování bohatého formátování, vložených objektů a speciálních funkcí, jako jsou hlasovací tlačítka. Standardní e‑mailoví klienti nemusí toto formátování při použití typických MIME zpráv zachovat.

Aspose.Email pro Python přes .NET podporuje odesílání e‑mailů ve formátu TNEF, aby byl zachován veškerý pokročilý formát a funkce. To se dosahuje povolením use_tnef vlastnost třídy SmtpClient třída.

Následující ukázka kódu a kroky demonstrují, jak odeslat TNEF e‑mail:

  1. Načtěte existující EML zprávu nebo vytvořte novou pomocí MailMessage třída.
  2. Nastavte adresy odesílatele a příjemce.
  3. Povolte formátování TNEF nastavením use_tnef = True na SmtpClient instance.
  4. Odešlete zprávu pomocí send() metoda.

Odeslat požadavky na schůzku e‑mailem

Microsoft Outlook a další e‑mailoví klienti s kalendářem, jako IBM Lotus Notes, umožňují uživatelům spravovat schůzky přímo ze své schránky. Když uživatel obdrží pozvánku na schůzku, může ji přijmout nebo odmítnout přímo ve svém e‑mailovém klientu. S Aspose.Email pro Python přes .NET mohou vývojáři programově vytvářet a odesílat tyto pozvánky v souladu se standardem iCalendar (RFC 2445).

Jak odeslat pozvánky na schůzku e‑mailem

Aspose.Email poskytuje vestavěnou podporu pro tvorbu a odesílání iCalendar požadavků na schůzku jako součást e‑mailu. Tyto požadavky jsou kompatibilní s populárními kalendářními klienty a umožňují příjemcům snadno reagovat na pozvánky.

|Žádost o schůzku iCalendar odeslaná e‑mailem| | :- | |todo:image_alt_text|

Následující úryvek kódu vám ukazuje, jak odeslat žádosti e‑mailem:

  1. Vytvořte MailMessage instance.
  2. Určete e‑mailové adresy odesílatele a příjemce.
  3. Vytvořte Appointment objekt s místem, časy začátku/konce, odesílatelem a příjemci.
  4. Nastavte souhrn a popis schůzky.
  5. Připojte schůzku k e‑mailu pomocí add_alternate_view().
  6. Odeslat e‑mail pomocí SmtpClient.

Podpora iCalendar pro IBM Lotus Notes

Aspose.Email používá formát iCalendar (RFC 2445), který zajišťuje, že vaše požadavky na schůzku jsou kompatibilní s Microsoft Outlook, IBM Lotus Notes a jakýmkoli jiným klientem podporujícím tento standard. Stejný proces lze použít bez ohledu na platformu příjemce.

Přeposlání e‑mailů pomocí SMTP klienta

Přeposílání e‑mailů je běžná úloha v digitální komunikaci, často používaná ke sdílení přijatých zpráv s ostatními. Aspose.Email pro Python přes .NET umožňuje vývojářům programově přeposílat e‑maily pomocí SmtpClient třídy. Metoda forward umožňuje přeposlání uložených nebo přijatých e‑mailových zpráv novým příjemcům bez zapojení původního odesílatele.

Níže je ukázka kódu, která demonstruje, jak přeposlat e‑mail pomocí MailMessage třída:

Přeposlat EML soubory bez načtení do MailMessage

Aspose.Email také podporuje přeposílání .eml souborů přímo, aniž by je nejprve načetl do MailMessage objekt. To je zvláště užitečné v situacích, kdy je potřeba minimalizovat využití systémové paměti.

Níže uvedená ukázka kódu demonstruje, jak přeposlat soubor EML přímo:

import aspose.email as ae

client = ae.clients.smtp.SmtpClient(host, smtp_port, username, password, ae.clients.SecurityOptions.AUTO)
file = open("test.eml", "rb")
client.forward(sender, recipients, file)