Simple Mail Transfer Protocol (SMTP) se uporablja kot protokol za upravljanje prenosa e-pošte s Pythonom. Uporablja se za usmerjanje e-pošte med e-poštnimi strežniki. To je protokol aplikacijskega sloja, ki uporabnikom omogoča pošiljanje pošte drugemu. Prejemnik pridobi e-pošto z uporabo protokolov POP (poštni protokol) in IMAP (Internet Message Access Protocol) .
Ko strežnik posluša povezavo TCP od odjemalca, vzpostavi povezavo na vratih 587.
Python ponuja a smtplib modul, ki definira objekt seje odjemalca SMTP, ki se uporablja za pošiljanje e-pošte na internetno napravo. V ta namen moramo uvoziti smtplib modul z uporabo stavka uvoza.
$ import smtplib
Objekt SMTP se uporablja za prenos elektronske pošte. Za ustvarjanje predmeta smtplib se uporablja naslednja sintaksa.
import smtplib smtpObj = smtplib.SMTP(host, port, local_hostname)
Sprejema naslednje parametre.
Metoda sendmail() objekta SMTP se uporablja za pošiljanje pošte na želeno napravo. Sintaksa je podana spodaj.
smtpObj.sendmail(sender, receiver, message)
Primer
if else if else if java
#!/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')
Pošiljanje e-pošte iz gmaila
Obstajajo primeri, ko so e-poštna sporočila poslana s strežnikom SMTP Gmail. V tem primeru lahko Gmail posredujemo kot strežnik SMTP namesto uporabe lokalnega gostitelja z vrati 587.
Uporabite naslednjo sintakso.
$ smtpObj = smtplib.SMTP('gmail.com', 587)
Tukaj se moramo prijaviti v račun Gmail z uporabniškim imenom in geslom za Gmail. V ta namen smtplib nudi metodo login(), ki sprejme uporabniško ime in geslo pošiljatelja.
Zaradi tega vas lahko vaš Gmail vpraša za dostop do manj varnih aplikacij, če uporabljate Gmail. To boste morali začasno vklopiti, da bo delovalo.
Razmislite o naslednjem primeru.
Primer
#!/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')
Pošiljanje HTML v e-pošti
HTML v sporočilu lahko oblikujemo tako, da določimo različico MIME, vrsto vsebine in nabor znakov za pošiljanje HTML-ja.
Razmislite o naslednjem primeru.
Primer
rakhi sawant
#!/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')