logo

Python šalje e-poštu koristeći SMTP

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

Python šalje e-poštu koristeći SMTP

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.

    domaćin:To je naziv glavnog računala koji pokreće vaš SMTP poslužitelj. Ovdje možemo navesti IP adresu poslužitelja kao što je ( https://www.javatpoint.com ) ili localhost. To je izborni parametar.luka:To je broj porta na kojem glavno računalo sluša SMTP veze. Zadano je 25.naziv lokalnog_domaćina:Ako SMTP poslužitelj radi na vašem lokalnom računalu, možemo spomenuti naziv hosta lokalnog računala.

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.

Python šalje e-poštu koristeći SMTP

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