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) .
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.
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
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 = '[email protected]' receivers_mail = ['[email protected]'] message = '''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> '''%(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')