with sent mails library from python smtp gmail smtplib

sent - smtplib python 3



Nuevo en Python, GMail SMTP error (2)

Estoy escribiendo una simple función sendmail para mí y sigo recibiendo este error:

NameError: name ''SMTPException'' no está definido

¿Qué pasa con mi código? ¿Alguna sugerencia?

import smtplib sender = "[email protected]" receiver = ["[email protected]"] message = "Hello!" try: session = smptlib.SMTP(''smtp.gmail.com'',587) session.ehlo() session.starttls() session.ehlo() session.login(sender,''password'') session.sendmail(sender,receiver,message) session.quit() except SMTPException: print(''Error'')


En Python, deberá calificar completamente el nombre prefijándolo con su módulo:

except smtplib.SMTPException:

Esto es cierto a menos que importe específicamente el nombre no calificado (pero no recomendaría hacer esto para su programa, solo mostrando lo que es posible):

from smtplib import SMTPException


¡Ese error ortográfico también se me ocurrió muchas veces! Una forma de eludir este "problema" es usar yagmail .

Bromas aparte, recientemente creé yagmail para que sea más fácil enviar correos electrónicos.

Por ejemplo:

import yagmail yag = yagmail.SMTP(''[email protected]'', ''password'') yag.send(contents = "Hello!")

Utiliza varias shortenings aquí, por ejemplo cuando To no está definido, enviará un correo al mismo correo electrónico que se registró en el servidor. Además, el puerto y el host son los predeterminados, lo que lo hace muy conciso.

De hecho, dado que parece que quieres cerrar la conexión de inmediato, incluso puedes usar este one-liner:

yagmail.SMTP(''[email protected]'', ''password'').send(contents = "Hello!")

Por razones de seguridad, puede mantener su contraseña en el keyring (consulte la documentación) para que no tenga que mantener su contraseña personal en sus scripts, ¡muy importante! Incluso te salvará más propiedades de pantalla.

Al ir all-in con el paquete ( @gmail.com es el predeterminado), puede salirse con la siguiente:

yagmail.SMTP(''user'').send('''', ''Hello!'')

Buena suerte.