Enviar correos electrónicos a múltiples direcciones usando Python

Abid Ullah 21 junio 2023
  1. Enviar correos electrónicos a múltiples direcciones usando Python
  2. el módulo smtplib en Python
  3. Enviar un correo electrónico usando smtplib en Python
  4. Controle el acceso a aplicaciones menos seguras
  5. Enviar un correo electrónico usando smtplib en Python
Enviar correos electrónicos a múltiples direcciones usando 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:

  1. SMTP: un objeto de sesión de cliente SMTP
  2. SMTP_SSL: una sesión de cliente SMTP a través de una conexión SSL
  3. IMAP4 - Un objeto de sesión de cliente IMAP4
  4. POP3 - Un objeto de sesión de cliente POP3

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:

  1. SMTPException: clase base para todas las excepciones relacionadas con SMTP.
  2. SMTPServerDisconnected: el servidor SMTP se desconectó inesperadamente.
  3. SMTPResponseException: el servidor SMTP devolvió un código de error que no era 2xx.
  4. SMTPSenderRefused: el servidor SMTP se negó a aceptar la dirección del remitente.
  5. SMTPRecipientsRefused: el servidor SMTP se negó a aceptar todas las direcciones de los destinatarios.
  6. SMTPDataError: el servidor SMTP no acepta los datos del mensaje.
  7. SMTPConnectError: no se pudo conectar el servidor SMTP.
  8. SMTPHeloError: el servidor SMTP no respondió correctamente al comando HELO.
  9. SMTPNotSupportedError: el servidor SMTP no admite la función solicitada.
  10. 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ón Seguridad. 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ón Iniciar sesión en Google.

    La siguiente imagen nos muestra que Iniciar sesión en Google tiene dos opciones.

    1. Verificación en 2 pasos

    2. Contraseña de la aplicación

    Iniciar sesión en Google

  • 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.

    contraseña de la aplicación

Ahora tenemos que marcar opciones en Seleccionar aplicación y Seleccionar dispositivo.

Generar contraseña

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.

Contraseña generada

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. Como Asunto, De, Para y Send.

  • 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.

Autor: Abid Ullah
Abid Ullah avatar Abid Ullah avatar

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

Artículo relacionado - Python Email