Enviar correos electrónicos a múltiples direcciones usando Python
- Enviar correos electrónicos a múltiples direcciones usando Python
-
el módulo
smtplib
en Python -
Enviar un correo electrónico usando
smtplib
en Python - Controle el acceso a aplicaciones menos seguras
-
Enviar un correo electrónico usando
smtplib
en Python
En este artículo, demostraremos cómo usar el lenguaje de programación Python para enviar correos electrónicos a varios destinatarios usando varias direcciones de correo electrónico. Específicamente, enviaremos correos electrónicos a muchas personas diferentes.
Enviar correos electrónicos a múltiples direcciones usando Python
Python es más que un simple lenguaje de programación para construir sitios web o trabajar con Inteligencia Artificial.
Es un lenguaje que se puede usar en el backend, front-end o en toda la pila de una aplicación web. Por lo tanto, su versatilidad lo convierte en una herramienta útil.
Python ahora se ha convertido en un lenguaje que también se puede usar para automatizar correos electrónicos. Las tareas que involucran el correo electrónico se pueden automatizar fácilmente usando Python.
Necesitamos algunas líneas de código para usar Python para enviar correos electrónicos a varios destinatarios diferentes al mismo tiempo.
En este artículo de Python, demostraremos cómo usar Python para enviar correos electrónicos a varios destinatarios simultáneamente.
No es muy difícil enviar correos electrónicos utilizando Python, especialmente si utiliza un módulo como smtplib
. Esta biblioteca se encargará de todo lo que necesita saber para conectarse a un servidor de correo y enviarle el mensaje.
Lo guiaremos paso a paso a través de la configuración de un script de Python para que pueda enviar correos electrónicos a muchas direcciones diferentes. Además, incluiremos algunos códigos de ejemplo para que los use a medida que comencemos.
Si queremos utilizar smtplib
, primero debe establecer una conexión con el servidor. Necesitaremos proporcionar la ubicación del servidor y nuestro nombre de usuario y contraseña para acceder al archivo.
Después de establecer la conexión, podemos comenzar a enviarnos mensajes.
Para enviar un mensaje, primero necesitaremos crear un objeto de mensaje y luego proporcionar los encabezados para los campos de
, a
y tema. También podemos añadir destinatarios cc
y bcc
.
Después de que se haya producido el mensaje, tendremos la opción de agregar texto, HTML o archivos adjuntos.
Cuando estemos listos para enviar el mensaje, podemos utilizar la función sendmail()
incluida en el módulo smtplib
. Esta técnica requiere una lista de receptores, luego se comunica con cada individuo en la lista.
Así que empecemos con smtplib
.
el módulo smtplib
en Python
El smtplib
es un módulo incorporado en Python. Tiene objetos de sesión de cliente.
El smtplib
define un objeto de sesión de cliente SMTP
. Este objeto se puede usar para enviar correo electrónico a cualquier computadora conectada a Internet que esté ejecutando un demonio de escucha SMTP
o ESMTP
.
No se espera que los programadores de aplicaciones utilicen este módulo directamente en su trabajo. Los administradores de sistemas que crean scripts para automatizar las actividades de administración del sistema encontrarán valioso tener acceso a este recurso.
las clases del módulo smtplib
El módulo smtplib
define las siguientes clases:
SMTP
: un objeto de sesión de cliente SMTPSMTP_SSL
: una sesión de cliente SMTP a través de una conexión SSLIMAP4
- Un objeto de sesión de clienteIMAP4
POP3
- Un objeto de sesión de clientePOP3
Todas estas clases tienen los mismos métodos y atributos.
las excepciones del módulo smtplib
El módulo smtplib
también define las siguientes excepciones:
SMTPException
: clase base para todas las excepciones relacionadas con SMTP.SMTPServerDisconnected
: el servidor SMTP se desconectó inesperadamente.SMTPResponseException
: el servidor SMTP devolvió un código de error que no era2xx
.SMTPSenderRefused
: el servidor SMTP se negó a aceptar la dirección del remitente.SMTPRecipientsRefused
: el servidor SMTP se negó a aceptar todas las direcciones de los destinatarios.SMTPDataError
: el servidor SMTP no acepta los datos del mensaje.SMTPConnectError
: no se pudo conectar el servidor SMTP.SMTPHeloError
: el servidor SMTP no respondió correctamente al comandoHELO
.SMTPNotSupportedError
: el servidor SMTP no admite la función solicitada.SMTPAuthenticationError
: el servidor SMTP no aceptó el nombre de usuario/contraseña.
Pasemos al tema principal del envío de correos electrónicos usando Python.
Enviar un correo electrónico usando smtplib
en Python
No es ningún secreto que Google ha estado tomando medidas enérgicas contra el acceso de aplicación menos segura
a las cuentas de Gmail. Esta ha sido una gran fuente de frustración para muchos usuarios, especialmente para aquellos que confían en Python para enviar correos electrónicos a través de sus cuentas de Gmail.
Desafortunadamente, Google ya no permite el acceso de Aplicación menos segura
a las cuentas de Gmail. Si queremos usar el módulo smtplib
de Python para enviar correos electrónicos a través de nuestra cuenta de Gmail, necesitaremos tomar algunos pasos adicionales para garantizar que su cuenta esté segura.
Así pues, lo primero que haremos será controlar el acceso a Aplicaciones menos seguras
.
Controle el acceso a aplicaciones menos seguras
Como habrá escuchado, Google ha dejado de brindar soporte para una función conocida como Aplicación menos segura
. Esta función le permitía acceder a su cuenta de Gmail mediante un programa como Microsoft Outlook, Thunderbird o Apple Mail.
Esto puede sonar como dolor; aunque es algo bueno! Las aplicaciones menos seguras
son un gran riesgo para la seguridad y, como Google ya no las admite, están ayudando a mantener su cuenta segura.
Como en nuestro caso, queremos que el smtplib
de Python acceda a nuestro Gmail, ¡no te preocupes! No necesitamos dar la contraseña de nuestra cuenta de Gmail.
Podemos cambiar de forma segura siguiendo estos sencillos pasos:
-
Utilice una conexión segura
Utilice siempre una conexión segura cuando envíe correos electrónicos a través de su cuenta de Gmail. Gmail ofrece dos tipos diferentes de conexiones: SSL y TLS.
SSL (Secure Sockets Layer) es el más antiguo de los dos protocolos y no es tan seguro como TLS. Sin embargo, sigue siendo más seguro que una conexión sin cifrar.
TLS (Transport Layer Security) es un protocolo más nuevo y más seguro que SSL. Gmail utilizará automáticamente TLS si está disponible.
-
Iniciar sesión en la cuenta de Gmail
Antes de enviar cualquier correo electrónico utilizando el módulo de Python
smtplib
, primero debemos iniciar sesión en nuestra cuenta porque necesitamos nuestro correo electrónico y una contraseña generada desde nuestra cuenta de Gmail. -
Administrar cuenta
Una vez que iniciemos sesión en nuestra cuenta, debemos hacer clic en el icono de nuestro perfil de Gmail. Veremos un desplegable y una opción con
[Gestiona tu cuenta de Google]
.Tendremos que pulsar sobre él para pasar al siguiente paso.
-
Seguridad
Después de hacer clic en
[Gestionar su cuenta de Google]
, seremos redirigidos a la siguiente página donde podemos encontrar la opciónSeguridad
. Tendremos que hacer clic en él. -
Iniciar sesión en Google
Después de hacer clic en
Seguridad
, seremos redirigidos a otra parte de Gmail donde podemos encontrar la opciónIniciar sesión en Google
.La siguiente imagen nos muestra que
Iniciar sesión en Google
tiene dos opciones.-
Verificación en 2 pasos
-
Contraseña de la aplicación
-
-
Habilitar la
Verificación en 2 pasos
Y otra medida de seguridad importante es habilitar la autenticación de dos factores para su cuenta de Gmail. La autenticación de dos factores agrega una capa adicional de seguridad al solicitarle que ingrese un código de su teléfono y su contraseña.
Ahora tendremos que activar primero la
Verificación en 2 pasos
. Lo cual es muy fácil; puedes hacerlo en unos segundos. -
Contraseñas de la aplicación
Una vez que hayamos terminado con la verificación de 2 pasos, tendremos que ir con
Contraseñas de la aplicación
para generar una contraseña desde nuestra cuenta de Gmail.Cuando hagamos clic en él, seremos redirigidos a la página mencionada a continuación.
Ahora tenemos que marcar opciones en Seleccionar aplicación
y Seleccionar dispositivo
.
En nuestro caso, seleccionaremos Correo
y Ordenador Windows
o cualquier otro dispositivo para avanzar y obtener una contraseña. Luego de esto, daremos clic en el botón Generar
.
Una vez que hagamos clic en el botón Generar
, seremos redirigidos a otra página donde podemos ver que Google ha generado una contraseña para nuestro correo electrónico, que podemos usar mientras usamos smtplib
de Python para enviar correos electrónicos.
Ahora que hemos generado de forma segura una contraseña para nuestro correo electrónico. Ahora podemos pasar a Python para enviar correos electrónicos usando smtplib
.
Enviar un correo electrónico usando smtplib
en Python
El módulo smtplib
facilita el envío de correos electrónicos usando Python. Solo hay unos pocos pasos que debe seguir para enviar un correo electrónico usando smtplib
.
Primero, necesitamos crear un objeto SMTP. A continuación, necesitamos conectarnos al servidor utilizando el método connect()
.
Y por último, podemos enviar un correo electrónico utilizando el método msg.set_content
. Profundicemos en los pasos del código.
-
Importar biblioteca
Primero importaremos
smtplib
. Este es el protocolo, y este protocolo ayuda a enviar el correo electrónico. -
Formato de Correo Electrónico
Usamos
email.message import EmailMessage
para usar el formato de correo electrónico en Python. ComoAsunto
,De
,Para
ySend
. -
Dirección de correo electrónico
Ahora escribiremos nuestras direcciones de correo electrónico entre comillas. El correo electrónico desde el que queremos enviar el correo electrónico.
-
Contraseña
Ahora escribiremos la contraseña generada que hemos generado anteriormente a través de Gmail.
-
Acceder a la base de datos de Gmail
Para acceder a la base de datos de Gmail utilizaremos
smtplib.SMTP_SSL('smtp.gmail.com', 465)
. Nos permite conectarnos con la base de datos de Gmail. -
Acceso
Ahora usaremos el comando
server.login
para iniciar sesión en el correo electrónico a través de la contraseña generada. -
Enviar
Ahora usaremos
v=server.send_message
para enviar el mensaje por correo electrónico. -
Imprimir
Después de que el correo electrónico se envíe con éxito, veremos un mensaje impreso,
El correo electrónico se ha enviado con éxito
.
Código de ejemplo:
import smtplib
from email.message import EmailMessage
EMAIL_ADDRESS = "iqraanwar097@gmail.com"
EMAIL_PASSWORD = "***************"
email = EmailMessage()
email["Subject"] = input(str("Email Subject: "))
email["From"] = "Your Name"
email["To"] = "abidork41@gmail.com"
email.set_content("Write Your message here")
server = smtplib.SMTP_SSL("smtp.gmail.com", 465)
server.login(EMAIL_ADDRESS, EMAIL_PASSWORD)
server.send_message(email)
server.quit()
print("Email has been sent successfully")
Producción :
Email Subject: Email sent using python
Email has been sent successfully
Así es como podemos enviar un correo electrónico a una dirección de correo electrónico. Pero si queremos enviar correos electrónicos a varias direcciones, podemos separar nuestros correos electrónicos con una coma y enviar correos electrónicos a tantas direcciones como queramos.
Código de ejemplo:
import smtplib
from email.message import EmailMessage
EMAIL_ADDRESS = "abs@gmail.com"
EMAIL_PASSWORD = "*************"
email = EmailMessage()
email["Subject"] = input(str("Email Subject: "))
email["From"] = "Your Name"
email["To"] = "abidork41@gmail.com,abidork41@gmail.com,abidork41@gmail.com"
email.set_content("Write Your message here")
server = smtplib.SMTP_SSL("smtp.gmail.com", 465)
server.login(EMAIL_ADDRESS, EMAIL_PASSWORD)
server.send_message(email)
server.quit()
print("Email has been sent successfully to all the addresses")
Producción :
Email Subject: I have a news for you all
Email has been sent successfully to all the addresses
Nuestro correo electrónico se envía a todas las direcciones mencionadas.
¡Así que esto nos lleva al final de la discusión! Podemos enviar correos electrónicos rápida y fácilmente a varias personas a la vez usando Python, lo que solo requiere unas pocas líneas de código de su parte.
Esperamos que este artículo le resulte útil para comprender cómo enviar correos electrónicos a varias direcciones mediante Python.
My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.
LinkedIn