Jak wysyłać zautomatyzowane wiadomości e-mail w Pythonie?

Jak wysyłać zautomatyzowane wiadomości e-mail w Pythonie?

Podczas gdy komercyjne klienty poczty e-mail oferują wygodę przyjaznego dla użytkownika interfejsu graficznego, często brakuje im elastyczności i możliwości dostosowywania, których wielu programistów lub twórców treści pragnie dla swoich potrzeb w zakresie poczty e-mail.





Czy to w przypadku wysłania wiadomości e-mail z podziękowaniem do nowego subskrybenta na kanale mediów społecznościowych, czy dodania funkcji e-mail do najnowszego projektu, możliwość wysyłania automatycznych wiadomości za pomocą SMTP w Pythonie jest czymś, co z pewnością się przyda.





Czytaj dalej, aby dowiedzieć się, jak uzyskać skrypt Pythona do wysyłania wiadomości e-mail działających na Twoim komputerze już dziś.





Co to jest SMTP?

Mówiąc prościej, SMTP lub Simple Mail Transfer Protocol to protokół komunikacyjny dla serwerów pocztowych do przesyłania wiadomości e-mail przez Internet.

Jest integralną częścią warstwy aplikacji pakietu TCP/IP, który jest zestawem protokołów używanych do komunikacji przez Internet lub inne podobne sieci. W sieci, w której zaimplementowano SMTP, proces znany jako przechowywać i przesyłać dalej pomaga przenosić pocztę w sieciach.



W każdym punkcie końcowym oprogramowanie znane jako Mail Transfer Agent (MTA) wykorzystuje funkcję przechowywania i przekazywania w celu ułatwienia komunikacji między uczestniczącymi serwerami SMTP. Dlatego główną rolą SMTP jest po prostu dyktowanie, gdzie iw jaki sposób poczta jest przenoszona z jednego punktu do drugiego w sieci.

Pierwsze kroki

Musisz mieć konto e-mail do wysyłania e-maili za pomocą tego programu. Dzieje się tak, ponieważ będziemy używać usługi SMTP klienta poczty e-mail do wysyłania wiadomości e-mail. W tym samouczku będziemy używać Gmaila.





Możesz również użyć lokalnego serwera debugowania SMTP do wysyłania testowych wiadomości e-mail, ale na razie będziemy używać konta e-mail do wysyłania wiadomości e-mail, ponieważ jest to bardziej intuicyjne.

Możliwe jest po prostu korzystanie z istniejącego konta Gmail, ale w miarę zabawy z programem może on wkrótce zostać zapełniony testowymi wiadomościami e-mail. Dlatego zalecamy utworzenie konta „wyrzucanego” do celów testowych.





Teraz włącz opcję, aby zezwalaj na mniej bezpieczne aplikacje aby uzyskać dostęp do konta Gmail. To kolejny powód, dla którego warto korzystać z jednorazowego adresu e-mail, ponieważ nie zaleca się zabawy z ustawieniami prywatności głównego adresu e-mail.

Pisanie e-maila w Pythonie

Python 3 jest preinstalowany z modułem o nazwie smtplib (skrót od biblioteki smtp), który może być używany do pracy z serwerami SMTP.

Jak każdy inny moduł Pythona, pierwszą rzeczą, którą musisz zrobić, to zaimportować smtplib.

import smtplib

Inicjowanie obiektu SMTP

Teraz możesz użyć smtplib do utworzenia obiektu SMTP, który zapewni Ci większość funkcji konwencjonalnego klienta poczty e-mail. Jednak funkcje obiektu SMTP mogą być używane tylko za pośrednictwem metod instancji. Więc naturalnie następnym krokiem jest zadeklarowanie instancji obiektu.

mySMTP = smtplib.SMTP('smtp.google.com')

Spowoduje to skonfigurowanie obiektu SMTP do wysyłania e-maili przy użyciu serwera SMTP Google.

Następnie określamy e-maile nadawcy i odbiorcy. Tutaj przydaje się utworzone wcześniej konto Gmail.

emailSender = senderMail@sender.com
myThroaway = 'myEmail@gmail.com'
emailRecipients = [myThroaway]

Należy zauważyć, że lista odbiorców jest w rzeczywistości tablicą, co oznacza, że ​​jest przeznaczona do przechowywania wartości nieatomowych. W rezultacie możesz nawet określić w tym polu całą listę mailingową!

Pisanie wiadomości

Prawdopodobnie najprostsza część procesu, tutaj musisz wprowadzić wartości, które zwykle dodajesz podczas tworzenia nowej wiadomości e-mail. To zawiera:

  • Dane nadawcy
  • Dane odbiorcy
  • Podmiot
  • Treść wiadomości

Pola te są ujęte w potrójne cudzysłowy i są rozgraniczone w następujący sposób:

jak przesyłać pliki z Maca na Androida
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

Wysyłanie e-maila

Na koniec możemy użyć polecenia sendmail, aby wysłać pocztę z serwera SMTP na serwer odbiorcy.

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

Teraz jest tylko jeden ostatni krok: reorganizacja kodu, aby zapobiec możliwym do przewidzenia awariom programu.

Rozwiązywanie problemów z programem pocztowym w Pythonie

Czasami serwer SMTP może nie nawiązać połączenia z serwerem odbiorcy lub może występować problem z wysyłaniem wiadomości e-mail z jednego portu SMTP do drugiego. W takim przypadku program może nieoczekiwanie ulec awarii.

Aby uwzględnić takie możliwości, możesz użyć a spróbuj z wyjątkiem zablokuj i umieść instrukcje podatne na błędy wewnątrz próbować blok. Cały program, wraz z blokiem try-except, powinien wyglądać mniej więcej tak:

import smtplib
emailSender = senderMail@sender.com
myThroaway = ‘my_email@gmail.com’
emailRecipients = [myThroaway]
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
smtpObj = smtplib.SMTP(‘smtp.gmail.com’)
mySMTP.sendmail(emailSender, emailRecipients, newEmail)
print (Email sent successfully!)
except SMTPException:
print ('Error: There was an error in sending your email.')

Zabezpieczanie Twoich e-maili

Jeśli zamierzasz używać Pythona w rzeczywistych warunkach do wysyłania e-maili, ważne jest, aby upewnić się, że komunikacja jest bezpieczna po obu stronach.

Korzystanie z prostego serwera SMTP z domyślnym portem nie zapewnia żadnej warstwy szyfrowania komunikacji. Oznacza to, że jeśli jakakolwiek strona trzecia nasłuchuje w Twojej sieci, może uzyskać dostęp do Twoich danych logowania i informacji zawartych w wiadomości e-mail.

Jednym ze sposobów na obejście tego problemu jest użycie protokołu TLS (Transport Layer Security) do szyfrowania komunikacji. Jest to ten sam protokół używany przez głównych klientów poczty e-mail, takich jak Gmail i Outlook, aby zapewnić, że Twoje e-maile nigdy nie dostaną się w niepowołane ręce.

W tym celu musimy dokonać kilku drobnych zmian w stworzonym wcześniej programie.

Pierwszym krokiem jest oczywiście zaimportowanie SSL biblioteka wraz z smtplib . ten SSL Biblioteka daje możliwość tworzenia bezpiecznego kontekstu SSL i komunikowania się przez zaszyfrowaną sieć, łącząc się z określonymi portami na obu końcach.

Bezpieczny kontekst SSL to nic innego jak zbiór szyfrów, wersji protokołów, zaufanych certyfikatów, opcji TLS i rozszerzeń TLS.

Następnie możemy określić port TLS i dodać kilka SSL funkcje biblioteczne w celu stworzenia bezpiecznego e-maila.

Kod, ze wszystkimi wprowadzonymi zmianami, wygląda mniej więcej tak:

import smtplib, ssl
smtpServer = 'smtp.gmail.com'
port = 587
myEmail = 'my_email@gmail.com'
password = 'my_password'
#email and password can also be user input fields
context = ssl.create_default_context()
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
server = smtplib.SMTP(smtpServer,port)
server.starttls(context=context)
server.login(newEmail, password)
except Exception as e:
print('the email could not be sent.')
finally:
server.quit()

Tak jak poprzednio, należy utworzyć i używać instancji SMTP w bloku try-except, aby zapobiec nagłym awariom programu.

co to jest wycięcie na telefonie komórkowym

Co możesz zrobić z tym skryptem Pythona

Teraz, gdy już opanowałeś niesamowitą i zaskakująco użyteczną umiejętność automatyzacji wiadomości e-mail za pomocą kodu, możesz zastosować ją na dowolnej platformie, która wymaga wysyłania wiadomości e-mail na zróżnicowaną listę mailingową.

Od używania go na swojej osobistej stronie internetowej do wysyłania automatycznych e-maili z potwierdzeniem, do używania go do wysyłania kartek świątecznych lub zaproszeń do rodziny i przyjaciół, zastosowania tego małego skryptu Pythona są ograniczone tylko twoją własną kreatywnością.

Ponadto jest to tylko jedna z wielu niesamowitych rzeczy, które możesz zrobić w Pythonie. Dzięki wszechobecnemu wsparciu dla programistów i łatwej do nauczenia składni, opanowanie umiejętności Pythona nigdy nie było łatwiejsze.

Aby kontynuować tworzenie fajnych rzeczy za pomocą kodu, zapoznaj się z naszym przewodnikiem, jak zbuduj własnego bota Telegrama za pomocą Pythona 3 !

Udział Udział Ćwierkać E-mail Jak poprawić swoje umiejętności w zakresie Pythona i sztucznej inteligencji za pomocą Keras, Pytorch, Tensorflow i innych

Podnieś swoje umiejętności programowania i tworzenia stron internetowych w językach Python, sztucznej inteligencji, Keras, PyTorch i nie tylko

Czytaj dalej
Powiązane tematy
  • Programowanie
  • Gmail
  • Porady e-mailowe
  • Pyton
  • Automatyzacja zadań
O autorze Yash Chellani(10 opublikowanych artykułów)

Yash jest początkującym studentem informatyki, który uwielbia budować i pisać o wszystkich sprawach technicznych. W wolnym czasie lubi grać w squasha, czytać najnowsze gry Murakami i polować na smoki w Skyrim.

Więcej od Yasha Chellani

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować