logo

Python pošilja e-pošto prek SMTP

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) .

Python pošilja e-pošto prek SMTP

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.

    gostitelj:To je ime gostitelja stroja, na katerem se izvaja vaš strežnik SMTP. Tukaj lahko določimo naslov IP strežnika, kot je ( https://www.javatpoint.com ) ali localhost. Je neobvezen parameter.pristanišče:To je številka vrat, na katerih gostiteljski stroj posluša povezave SMTP. Privzeto je 25.lokalno_ime_gostitelja:Če strežnik SMTP deluje na vašem lokalnem računalniku, lahko omenimo ime gostitelja lokalnega računalnika.

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.

Python pošilja e-pošto prek SMTP

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 = &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;)