logo

Python envia correu electrònic mitjançant SMTP

El protocol simple de transferència de correu (SMTP) s'utilitza com a protocol per gestionar la transferència de correu electrònic mitjançant Python. S'utilitza per encaminar correus electrònics entre servidors de correu electrònic. És un protocol de capa d'aplicació que permet als usuaris enviar correu a un altre. El receptor recupera el correu electrònic mitjançant els protocols POP (Protocol d'oficina postal) i IMAP (Internet Message Access Protocol) .

Kat timpf
Python envia correu electrònic mitjançant SMTP

Quan el servidor escolta la connexió TCP d'un client, inicia una connexió al port 587.

Python proporciona a smtplib mòdul, que defineix un objecte de sessió de client SMTP utilitzat per enviar correus electrònics a una màquina d'Internet. Per a això, hem d'importar el smtplib mòdul utilitzant la instrucció d'import.

 $ import smtplib 

L'objecte SMTP s'utilitza per a la transferència de correu electrònic. La sintaxi següent s'utilitza per crear l'objecte smtplib.

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

Accepta els paràmetres següents.

    amfitrió:És el nom d'amfitrió de la màquina que executa el vostre servidor SMTP. Aquí, podem especificar l'adreça IP del servidor com ( https://www.javatpoint.com ) o localhost. És un paràmetre opcional.port:És el número de port on la màquina amfitrió està escoltant les connexions SMTP. És 25 per defecte.nom_amfitrió_local:Si el servidor SMTP s'està executant a la vostra màquina local, podem esmentar el nom d'amfitrió de la màquina local.

El mètode sendmail() de l'objecte SMTP s'utilitza per enviar el correu a la màquina desitjada. La sintaxi es mostra a continuació.

 smtpObj.sendmail(sender, receiver, message) 

Exemple

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

Enviament de correu electrònic des de gmail

Hi ha casos en què els correus electrònics s'envien mitjançant el servidor SMTP de Gmail. En aquest cas, podem passar Gmail com a servidor SMTP en lloc d'utilitzar el localhost amb el port 587.

Utilitzeu la sintaxi següent.

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

Aquí, hem d'iniciar sessió al compte de Gmail amb el nom d'usuari i la contrasenya de Gmail. Amb aquesta finalitat, els smtplib proporcionen el mètode login(), que accepta el nom d'usuari i la contrasenya del remitent.

system.out.println

Això pot fer que el vostre Gmail us demani accés a aplicacions menys segures si feu servir Gmail. Haureu d'activar-lo temporalment perquè funcioni.

Python envia correu electrònic mitjançant SMTP

Considereu l'exemple següent.

Exemple

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

Enviament d'HTML per correu electrònic

Podem formatar l'HTML al missatge especificant la versió MIME, el tipus de contingut i el conjunt de caràcters per enviar l'HTML.

Considereu l'exemple següent.

Exemple

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