logo

Python trimite e-mail folosind SMTP

Protocolul simplu de transfer de e-mail (SMTP) este folosit ca protocol pentru a gestiona transferul de e-mail folosind Python. Este folosit pentru a direcționa e-mailurile între servere de e-mail. Este un protocol de nivel de aplicație care permite utilizatorilor să trimită e-mail către altul. Destinatarul preia email-ul folosind protocoalele POP (Protocolul oficiului poștal) și IMAP (Internet Message Access Protocol) .

Python trimite e-mail folosind SMTP

Când serverul ascultă conexiunea TCP de la un client, inițiază o conexiune pe portul 587.

Python oferă o smtplib modul, care definește un obiect de sesiune client SMTP utilizat pentru a trimite e-mailuri către o mașină de internet. În acest scop, trebuie să importam smtplib modul folosind instrucțiunea de import.

număr în șir java
 $ import smtplib 

Obiectul SMTP este utilizat pentru transferul de e-mail. Următoarea sintaxă este utilizată pentru a crea obiectul smtplib.

 import smtplib smtpObj = smtplib.SMTP(host, port, local_hostname) 

Acceptă următorii parametri.

    gazdă:Este numele de gazdă al mașinii care rulează serverul SMTP. Aici, putem specifica adresa IP a serverului, cum ar fi ( https://www.javatpoint.com ) sau localhost. Este un parametru opțional.port:Este numărul portului pe care mașina gazdă ascultă conexiunile SMTP. Este 25 implicit.local_hostname:Dacă serverul SMTP rulează pe mașina dvs. locală, putem menționa numele de gazdă al mașinii locale.

Metoda sendmail() a obiectului SMTP este folosită pentru a trimite e-mail-ul către mașina dorită. Sintaxa este dată mai jos.

 smtpObj.sendmail(sender, receiver, message) 

Exemplu

 #!/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') 

Se trimite email de pe gmail

Există cazuri în care e-mailurile sunt trimise folosind serverul SMTP Gmail. În acest caz, putem trece Gmail ca server SMTP în loc să folosim localhost cu portul 587.

arata utilizatorilor mysql

Utilizați următoarea sintaxă.

 $ smtpObj = smtplib.SMTP('gmail.com', 587) 

Aici, trebuie să ne autentificăm la contul Gmail folosind numele de utilizator și parola Gmail. În acest scop, smtplib furnizează metoda login(), care acceptă numele de utilizator și parola expeditorului.

Acest lucru poate face ca Gmail să vă solicite acces la aplicații mai puțin sigure dacă utilizați Gmail. Va trebui să activați temporar această opțiune pentru ca aceasta să funcționeze.

Logica propozițională
Python trimite e-mail folosind SMTP

Luați în considerare următorul exemplu.

Exemplu

 #!/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') 

Se trimite HTML prin e-mail

Putem formata HTML-ul în mesaj specificând versiunea MIME, tipul de conținut și setul de caractere pentru a trimite HTML-ul.

Luați în considerare următorul exemplu.

Exemplu

 #!/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;)