Simple Mail Transfer Protocol (SMTP) koristi se kao protokol za upravljanje prijenosom e-pošte pomoću Pythona. Koristi se za usmjeravanje e-pošte između poslužitelja e-pošte. To je protokol aplikacijskog sloja koji korisnicima omogućuje slanje pošte drugome. Primatelj dohvaća e-poštu pomoću protokola POP (Poštanski protokol) i IMAP (Internet Message Access Protocol) .
Kada poslužitelj osluškuje TCP vezu od klijenta, on inicira vezu na portu 587.
Python pruža a smtplib modul, koji definira objekt sesije SMTP klijenta koji se koristi za slanje e-pošte internetskom stroju. U tu svrhu moramo uvesti smtplib modul pomoću naredbe import.
$ import smtplib
SMTP objekt koristi se za prijenos e-pošte. Sljedeća sintaksa koristi se za stvaranje smtplib objekta.
import smtplib smtpObj = smtplib.SMTP(host, port, local_hostname)
Prihvaća sljedeće parametre.
Metoda sendmail() SMTP objekta koristi se za slanje pošte na željeni stroj. Sintaksa je dana u nastavku.
string replaceall java
smtpObj.sendmail(sender, receiver, message)
Primjer
#!/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')
Slanje e-pošte s gmaila
Postoje slučajevi u kojima se e-poruke šalju putem Gmail SMTP poslužitelja. U ovom slučaju možemo proslijediti Gmail kao SMTP poslužitelj umjesto korištenja lokalnog hosta s portom 587.
Koristite sljedeću sintaksu.
$ smtpObj = smtplib.SMTP('gmail.com', 587)
Ovdje se moramo prijaviti na Gmail račun koristeći Gmail korisničko ime i lozinku. U tu svrhu, smtplib pruža metodu login(), koja prihvaća korisničko ime i lozinku pošiljatelja.
Zbog toga bi vaš Gmail mogao zatražiti pristup manje sigurnim aplikacijama ako koristite Gmail. Morat ćete ovo privremeno UKLJUČITI da ovo radi.
Razmotrite sljedeći primjer.
Primjer
#!/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')
Slanje HTML-a e-poštom
Možemo formatirati HTML u poruci navođenjem MIME verzije, vrste sadržaja i skupa znakova za slanje HTML-a.
Razmotrite sljedeći primjer.
bash za petlju 1 do 10
Primjer
#!/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')