Com enviar missatges de correu electrònic automàtics a Python

Com enviar missatges de correu electrònic automàtics a Python

Tot i que els clients comercials de correu electrònic ofereixen la comoditat d’una interfície gràfica d’usuari fàcil d’utilitzar, sovint els falta la flexibilitat i la personalització que molts desenvolupadors o creadors de contingut desitgen per a les seves necessitats de correu electrònic.





Ja sigui per enviar un correu electrònic d’agraïment a un nou subscriptor al vostre canal de xarxes socials o per afegir funcions de correu electrònic al vostre darrer projecte, la possibilitat d’enviar missatges automatitzats mitjançant SMTP a Python és una cosa que segur que serà útil.





Seguiu llegint per esbrinar com podeu obtenir un script Python per enviar correus electrònics que s’executen avui a la vostra màquina.





Què és SMTP?

En poques paraules, SMTP o Simple Mail Transfer Protocol, és un protocol de comunicació per als servidors de correu que transmeten correu electrònic per Internet.

És una part integral de la capa d’aplicacions de la suite TCP / IP, que és un conjunt de protocols que s’utilitzen per a la comunicació per Internet o altres xarxes similars. En una xarxa on s'implementa SMTP, un procés conegut com emmagatzemar i reenviar ajuda a moure el correu a través de xarxes.



A cada punt final, el programari conegut com a agent de transferència de correu (MTA) fa servir store and forward per facilitar la comunicació entre els servidors SMTP participants. El paper principal de SMTP, per tant, és simplement dictar on i com es mou el correu d’un punt a un altre en una xarxa.

Començant

Cal que tingueu un compte de correu electrònic per enviar-lo mitjançant aquest programa. Això es deu al fet que utilitzarem el servei SMTP del client de correu electrònic per enviar correus electrònics. Per a aquest tutorial, farem servir Gmail.





També podeu utilitzar un servidor de depuració SMTP local per enviar correus electrònics de prova, però de moment utilitzarem un compte de correu electrònic per enviar correus electrònics, ja que és més intuïtiu.

És possible utilitzar simplement un compte de Gmail existent, però a mesura que jugueu amb el vostre programa, aviat es pot omplir de correus electrònics de prova. És per això que us recomanem que creeu un compte 'llençable' amb l'objectiu de provar.





Ara activeu l'opció a permet aplicacions menys segures per accedir al vostre compte de Gmail. Aquest és un altre motiu per fer servir un correu electrònic de rebutjat, ja que no es recomana jugar amb la configuració de privadesa del vostre correu electrònic principal.

Escriptura del correu electrònic a Python

Python 3 ve preinstal·lat amb un mòdul anomenat smtplib (abreviatura de biblioteca SMTP), que es pot utilitzar per treballar amb servidors SMTP.

Com qualsevol altre mòdul Python, el primer que heu de fer és importar smtplib.

import smtplib

Inicialització d’un objecte SMTP

Ara, podeu utilitzar smtplib per crear un objecte SMTP, que us proporcionarà la major part de la funcionalitat d’un client de correu electrònic convencional. Tot i això, les funcions d’un objecte SMTP només es poden utilitzar mitjançant mètodes d’instància. Per tant, naturalment, el següent pas és declarar una instància d'objecte.

mySMTP = smtplib.SMTP('smtp.google.com')

Això configura l'objecte SMTP per enviar correus electrònics mitjançant el servidor SMTP de Google.

Després d'això, especifiquem els correus electrònics del remitent i del destinatari. Aquí és útil el compte de Gmail que heu creat anteriorment.

emailSender = senderMail@sender.com
myThroaway = 'myEmail@gmail.com'
emailRecipients = [myThroaway]

Una cosa a tenir en compte aquí és que la llista de destinataris és en realitat una matriu, el que significa que està dissenyada per emmagatzemar valors no atòmics. Com a resultat, fins i tot podeu especificar una llista de correu sencera en aquest camp.

Escriptura del missatge

Probablement la part més senzilla del procés, aquí heu d’introduir valors que normalment afegiríeu en redactar un correu electrònic nou. Això inclou:

  • Detalls del remitent
  • Detalls del destinatari
  • Assignatura
  • Cos del missatge

Aquests camps estan units entre cometes triples i es delimiten de la següent manera:

com instal·lar Google Play a la tauleta Fire
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

S'està enviant el correu electrònic

Finalment, podem utilitzar l’ordre sendmail per enviar el correu del servidor SMTP al servidor del destinatari.

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

Ara, només hi ha un darrer pas: tornar a organitzar el codi per evitar bloquejos previsibles del programa.

Resolució de problemes del programa de correu electrònic de Python

De vegades, el servidor SMTP pot fallar en establir una connexió amb la del destinatari o pot haver-hi un problema amb l’enviament d’un correu electrònic d’un port SMTP a un altre. En aquest cas, el vostre programa podria bloquejar-se inesperadament.

Per tenir en compte aquestes possibilitats, podeu utilitzar un provar-excepte bloquejar i posar les sentències propenses a errors dins del fitxer provar bloc. Tot el programa, juntament amb el bloc try-except, hauria de ser semblant a aquest:

import smtplib
emailSender = senderMail@sender.com
myThroaway = ‘my_email@gmail.com’
emailRecipients = [myThroaway]
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
smtpObj = smtplib.SMTP(‘smtp.gmail.com’)
mySMTP.sendmail(emailSender, emailRecipients, newEmail)
print (Email sent successfully!)
except SMTPException:
print ('Error: There was an error in sending your email.')

Protecció dels vostres correus electrònics

Si teniu intenció d’utilitzar Python en un entorn real per enviar correus electrònics, és important assegurar-vos que la comunicació sigui segura a tots dos extrems.

L’ús d’un servidor SMTP simple amb el port per defecte no proporciona cap capa de xifratge a la comunicació. Això significa que si un tercer escolta a la vostra xarxa, pot accedir a les vostres credencials d’inici de sessió i a la informació continguda al vostre correu electrònic.

Una manera d’eludir aquest problema és utilitzar el protocol TLS (Transport Layer Security) per xifrar la vostra comunicació. Aquest és el mateix protocol que utilitzen els principals clients de correu electrònic com Gmail i Outlook per garantir que els vostres correus electrònics mai caiguin en mans equivocades.

Per fer-ho, hem de fer alguns canvis menors al programa que hem creat anteriorment.

El primer pas, per descomptat, és importar el fitxer ssl biblioteca juntament amb smtplib . El ssl biblioteca us proporciona la possibilitat de crear un context SSL segur i comunicar-vos a través d’una xarxa xifrada mitjançant la connexió a ports específics dels dos extrems.

Un context SSL segur no és res més que una col·lecció de xifrats, versions de protocols, certificats de confiança, opcions TLS i extensions TLS.

Després d'això, podem especificar el port TLS i afegir-ne uns quants ssl funcions de biblioteca per crear un correu electrònic segur.

El codi, amb tots els canvis realitzats, té el següent aspecte:

import smtplib, ssl
smtpServer = 'smtp.gmail.com'
port = 587
myEmail = 'my_email@gmail.com'
password = 'my_password'
#email and password can also be user input fields
context = ssl.create_default_context()
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
server = smtplib.SMTP(smtpServer,port)
server.starttls(context=context)
server.login(newEmail, password)
except Exception as e:
print('the email could not be sent.')
finally:
server.quit()

Com abans, hauríeu de crear i utilitzar la instància SMTP en un bloc try-except per evitar bloquejos bruscs del programa.

on és el botó wps del meu router

Què podeu fer amb aquest script Python

Ara que heu agafat la increïble i sorprenentment útil habilitat d’automatitzar correus electrònics mitjançant codi, podeu aplicar-lo a qualsevol plataforma que requereixi l’enviament de correus electrònics a una llista de distribució diversa.

Des d’utilitzar-lo al vostre lloc web personal per enviar correus electrònics de reconeixement automàtics fins a fer-lo servir per enviar targetes de Nadal o invitacions per correu electrònic a la vostra família i amics, els usos d’aquest petit script Python només estan limitats per la vostra pròpia creativitat.

A més, això és només una de les moltes coses impressionants que podeu fer amb Python. Amb el seu suport per a desenvolupadors omnipresent i la sintaxi fàcil d’aprendre, recollir una habilitat Python mai ha estat tan fàcil.

Per continuar creant coses interessants amb codi, consulteu la nostra guia sobre com fer-ho creeu el vostre propi bot Telegram amb Python 3 !

Compartir Compartir Tweet Correu electrònic Com actualitzar les vostres habilitats en Python i IA amb Keras, Pytorch, Tensorflow i molt més

Actualitzeu les vostres habilitats de programació i desenvolupament web a Python, Intel·ligència Artificial, Keras, PyTorch i molt més

Llegiu a continuació
Temes relacionats
  • Programació
  • Gmail
  • Consells per correu electrònic
  • Python
  • Automatització de tasques
Sobre l'autor Yash Chellani(10 articles publicats)

Yash és un aspirant a estudiant d'informàtica a qui li encanta construir coses i escriure sobre totes les coses tecnològiques. Durant el seu temps lliure, li agrada jugar a l’esquaix, llegir una còpia de l’últim Murakami i caçar dracs a Skyrim.

Més de Yash Chellani

Subscriu-te al nostre butlletí

Uniu-vos al nostre butlletí per obtenir consells tècnics, ressenyes, llibres electrònics gratuïts i ofertes exclusives.

Feu clic aquí per subscriure-us