logo

Python Wysyłanie wiadomości e-mail przy użyciu protokołu SMTP

Simple Mail Transfer Protocol (SMTP) jest używany jako protokół do obsługi przesyłania wiadomości e-mail za pomocą języka Python. Służy do przesyłania wiadomości e-mail pomiędzy serwerami pocztowymi. Jest to protokół warstwy aplikacji, który umożliwia użytkownikom wysyłanie poczty do innego użytkownika. Odbiorca pobiera pocztę e-mail przy użyciu protokołów POP (protokół pocztowy) I IMAP (protokół dostępu do wiadomości internetowych) .

Python Wysyłanie wiadomości e-mail przy użyciu protokołu SMTP

Gdy serwer nasłuchuje połączenia TCP od klienta, inicjuje połączenie na porcie 587.

Python zapewnia smtplib moduł, który definiuje obiekt sesji klienta SMTP używany do wysyłania wiadomości e-mail na komputer internetowy. W tym celu musimy zaimportować plik smtplib moduł za pomocą instrukcji import.

przechodzenie przez pocztę
 $ import smtplib 

Obiekt SMTP służy do przesyłania wiadomości e-mail. Do utworzenia obiektu smtplib używana jest następująca składnia.

 import smtplib smtpObj = smtplib.SMTP(host, port, local_hostname) 

Akceptuje następujące parametry.

    gospodarz:Jest to nazwa hosta komputera, na którym działa serwer SMTP. Tutaj możemy określić adres IP serwera, taki jak ( https://www.javatpoint.com ) lub localhost. Jest to parametr opcjonalny.Port:Jest to numer portu, na którym maszyna hosta nasłuchuje połączeń SMTP. Domyślnie jest to 25.nazwa_hosta lokalnego:Jeśli serwer SMTP działa na Twoim komputerze lokalnym, możemy podać nazwę hosta komputera lokalnego.

Metoda sendmail() obiektu SMTP służy do wysyłania poczty do żądanej maszyny. Składnię podano poniżej.

 smtpObj.sendmail(sender, receiver, message) 

Przykład

 #!/usr/bin/python3 import smtplib sender_mail = '[email protected]' receivers_mail = ['[email protected]'] message = '''From: From Person %s To: To Person %s Subject: Sending SMTP e-mail This is a test e-mail message. '''%(sender_mail,receivers_mail) try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender_mail, receivers_mail, message) print('Successfully sent email') except Exception: print('Error: unable to send email') 

Wysyłanie wiadomości e-mail z Gmaila

Zdarzają się przypadki, gdy e-maile są wysyłane za pomocą serwera SMTP Gmaila. W takim przypadku możemy przekazać Gmaila jako serwer SMTP zamiast używać hosta lokalnego z portem 587.

klasa abstrakcyjna a interfejs

Użyj poniższej składni.

 $ smtpObj = smtplib.SMTP('gmail.com', 587) 

Tutaj musimy zalogować się na konto Gmail przy użyciu nazwy użytkownika i hasła Gmaila. W tym celu smtplib udostępnia metodę login(), która akceptuje nazwę użytkownika i hasło nadawcy.

Może to spowodować, że Twój Gmail poprosi Cię o dostęp do mniej bezpiecznych aplikacji, jeśli używasz Gmaila. Aby to zadziałało, musisz tymczasowo WŁĄCZYĆ tę opcję.

rdzeń Java, Java
Python Wysyłanie wiadomości e-mail przy użyciu protokołu SMTP

Rozważ następujący przykład.

Przykład

 #!/usr/bin/python3 import smtplib sender_mail = '[email protected]' receivers_mail = ['[email protected]'] message = '''From: From Person %s To: To Person %s Subject: Sending SMTP e-mail This is a test e-mail message. '''%(sender_mail,receivers_mail) try: password = input('Enter the password'); smtpObj = smtplib.SMTP('gmail.com',587) smtpobj.login(sender_mail,password) smtpObj.sendmail(sender_mail, receivers_mail, message) print('Successfully sent email') except Exception: print('Error: unable to send email') 

Wysyłanie kodu HTML w wiadomości e-mail

Możemy sformatować kod HTML w wiadomości, określając wersję MIME, typ zawartości i zestaw znaków do wysłania kodu HTML.

Rozważ następujący przykład.

Przykład

 #!/usr/bin/python3 import smtplib sender_mail = &apos;[email protected]&apos; receivers_mail = [&apos;[email protected]&apos;] message = &apos;&apos;&apos;From: From Person %s To: To Person %s MIME-Version:1.0 Content-type:text/html Subject: Sending SMTP e-mail <h3>Python SMTP</h3> <strong>This is a test e-mail message.</strong> &apos;&apos;&apos;%(sender_mail,receivers_mail) try: smtpObj = smtplib.SMTP(&apos;localhost&apos;) smtpObj.sendmail(sender_mail, receivers_mail, message) print(&apos;Successfully sent email&apos;) except Exception: print(&apos;Error: unable to send email&apos;)