Wysyłaj e-maile w Python

Zautomatyzowane wiadomości e-mail są powszechnie używane do wysyłania powiadomień lub innych wiadomości do subskrybentów. Ponadto różne e-maile są wyzwalane na podstawie działań lub zachowań użytkowników. Aby zaimplementować automatyzację poczty e-mail, w tym artykule omówiono sposób wysyłania wiadomości e-mail przez SMTP w Python. Ponadto zademonstrujemy, jak utworzyć od podstaw wiadomość e-mail ze zwykłym tekstem lub treścią HTML.

Biblioteka Python do wysyłania wiadomości e-mail przez SMTP

Do tworzenia i wysyłania e-maili za pomocą SMTP użyjemy Aspose.Email for Python via .NET. Jest to potężna biblioteka Python, która umożliwia wdrażanie bogatych w funkcje klientów poczty e-mail. Możesz zainstalować interfejs API z PyPI za pomocą następującego polecenia.

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

Lub możesz wykonać poniższe kroki w celu instalacji ręcznej.

  • Pobierz instalowalny plik .whl z sekcji pliki do pobrania.
  • Z wiersza poleceń użyj polecenia: pip install «FileName> >.whl, aby zainstalować interfejs API.
  • Pobierz kompletny pakiet próbek kodu źródłowego z GitHub.

Wysyłaj e-maile przez SMTP w Python

Poniżej przedstawiono kroki tworzenia i wysyłania wiadomości e-mail przez SMTP w Python.

  • Utwórz obiekt klasy MailMessage.
  • Ustaw temat, treść, adresy nadawcy i odbiorcy.
  • Ustaw DW lub UDW (opcjonalnie).
  • Utwórz nowego klienta SMTP przy użyciu klasy SmtpClient i ustaw hosta, port, nazwę użytkownika i hasło.
  • Ustaw opcje bezpieczeństwa.
  • Wyślij wiadomość e-mail przy użyciu metody SmtpClient.send(MailMessage).

Poniższy przykładowy kod pokazuje, jak tworzyć i wysyłać wiadomości e-mail w języku Python.

# Utwórz wiadomość e-mail
eml = ae.MailMessage()
eml.subject = "Message with Plain Text Body"
eml.body = "This is plain text body."
eml.from_address = "from@gmail.com"
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1"))

# Utwórz klienta SMTP
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO

# Wysłać email
client.send(eml)

Wysyłaj e-maile z treścią HTML w Python

Poniżej przedstawiono kroki wysyłania wiadomości e-mail z treścią HTML w Python.

  • Utwórz obiekt klasy MailMessage.
  • Ustaw treść wiadomości e-mail za pomocą właściwości MailMessage.bodyhtml.
  • Ustaw właściwość MailMessage.isbodyhtml na wartość true.
  • Przypisz adresy tematu, nadawcy i odbiorcy.
  • Ustaw DW lub UDW (opcjonalnie).
  • Utwórz nowego klienta SMTP przy użyciu klasy SmtpClient i ustaw hosta, port, nazwę użytkownika i hasło.
  • Wyślij wiadomość e-mail przy użyciu metody SmtpClient.send(MailMessage).

Poniższy przykładowy kod pokazuje, jak wysyłać wiadomości e-mail z treścią HTML w języku Python.

# Utwórz wiadomość e-mail z treścią HTML
eml = ae.MailMessage()
eml.subject = "Message with Plain Text Body"
eml.is_body_html = True
eml.html_body = "<html><body>This is the <b>HTML</b>body</body></html>"
eml.from_address = "from@gmail.com"
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1"))

# Utwórz klienta SMTP
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO

# Wysłać email
client.send(eml)

Kod Python do wysyłania masowych wiadomości e-mail

Poniżej przedstawiono kroki wysyłania masowych wiadomości e-mail w Python.

  • Twórz wiele wiadomości e-mail za pomocą klasy MailMessage i ustawiaj ich właściwości, takie jak temat, odbiorcy itp.
  • Utwórz obiekt klasy MailMessageCollection.
  • Dodaj wiadomości e-mail do kolekcji przy użyciu metody MailMessageCollection.append(MailMessage).
  • Utwórz nowego klienta SMTP przy użyciu klasy SmtpClient i ustaw hosta, port, nazwę użytkownika i hasło.
  • Wyślij wiadomość e-mail przy użyciu metody SmtpClient.send(MailMessageCollection).

Poniższy przykładowy kod pokazuje, jak wysyłać masowe wiadomości e-mail za pośrednictwem protokołu SMTP w języku Python.

# Twórz wiele wiadomości e-mail
message1 = MailMessage("from@gmail.com", "to@gmail.com", "Sending Bulk Emails using Aspose.Email", "message1, how are you?")
message2 = MailMessage("from@gmail.com", "to@gmail.com", "Sending Bulk Emails using Aspose.Email", "message2, how are you?")
message3 = MailMessage("from@gmail.com", "to@gmail.com", "Sending Bulk Emails using Aspose.Email", "message3, how are you?")

# Dodaj wiadomości do kolekcji
manyMsg =  MailMessageCollection()
manyMsg.append(message1)
manyMsg.append(message2)
manyMsg.append(message3)

# Utwórz klienta SMTP
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO

# Wysyłać emaile
client.send(manyMsg)

Jak przekazać wiadomość e-mail w Python

Poniżej przedstawiono kroki, aby przekazać wiadomość e-mail w języku Python.

  • Załaduj wiadomość e-mail do obiektu przy użyciu metody MailMessage.load(String fileName).
  • Ustaw adres odbiorcy.
  • Utwórz klienta SMTP przy użyciu klasy SmtpClient.
  • Przekaż wiadomość przy użyciu metody SmtpClient.forward().

Poniższy przykładowy kod pokazuje, jak przesłać dalej wiadomość e-mail w języku Python.

# Załaduj wiadomość e-mail do przekazania
eml = MailMessage.load("Message.eml")

# Ustaw odbiorcę
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1"))

# Wyślij za pomocą klienta Smtp
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO
client.forward("Recipient1@domain.com", "Recipient2@domain.com", eml)

Biblioteka Python do wysyłania wiadomości e-mail — uzyskaj bezpłatną licencję

Możesz uzyskać Bezpłatną licencję tymczasową i wysyłać e-maile przez SMTP bez ograniczeń ewaluacyjnych.

Biblioteka poczty e-mail Aspose dla języka Python — wersja demonstracyjna na żywo

Wniosek

W tym artykule nauczyłeś się, jak tworzyć i wysyłać e-maile przez SMTP w Python. Ponadto widziałeś, jak programowo wysyłać masowe wiadomości e-mail ze zwykłym tekstem lub treścią HTML. Możesz dowiedzieć się więcej o interfejsie API poczty e-mail Python, korzystając z dokumentacji. Jeśli masz jakieś pytania lub wątpliwości, daj nam znać za pośrednictwem naszego forum.

Zobacz też