EZGmail es un módulo de Python que se puede usar para enviar y recibir correos electrónicos a través de Gmail. Funciona sobre la API oficial de Gmail. Aunque EZGmail no cubre todo lo que se puede hacer con la API de Gmail, hace que las tareas comunes sean muy simples, las cuales son mucho más complicadas con la propia API de Google. En este artículo, veremos cómo usar este módulo para enviar, buscar, leer correos electrónicos y descargar archivos adjuntos.
Instalación
Este módulo no viene preinstalado con Python. Para instalarlo, escriba el siguiente comando en la terminal.
pip install EZGmail
Habilitación de la API de Gmail
Primero, debemos habilitar la API de Gmail desde el sitio web oficial. Vaya al sitio web oficial para desarrolladores de Google https://developers.google.com/gmail/api/quickstart/python y siga los pasos a continuación.
- Haga clic en el botón Habilitar la API de Gmail .
- Seleccione la aplicación de escritorio como cliente de OAuth.
- A continuación, haga clic en el botón Descargar configuración del cliente .
- Se descargará un archivo json llamado ‘ credentials.json ‘ . Copie este archivo en el directorio de trabajo de Python.
Autenticación de la aplicación
A continuación, debemos autorizar nuestro programa para usar nuestra cuenta de Google. Este proceso de autorización debe realizarse una sola vez.
- Ejecute ezgmail.init() desde el shell de Python.
- Esto abre una ventana del navegador y nos lleva a la página de autenticación. Luego debemos seleccionar la cuenta de Google y autorizar a la aplicación a usar nuestra cuenta.
La configuración está completa. Ahora, veremos cómo usar este módulo.
Envío de correo electrónico
La función send() se utiliza para enviar correos electrónicos.
Sintaxis: ezgmail.send (correo electrónico, sub, texto)
Parámetros:
- email: dirección de correo electrónico del destinatario
- sub: Asunto del correo electrónico
- texto: cuerpo del correo electrónico
Ejemplo:
Python3
import ezgmail email = 'user@email.com' subject = 'EZGmail Test' text = 'This is the body of the mail.' ezgmail.send(email, subject, text)
Esto enviará un correo electrónico al destinatario desde nuestra cuenta de Gmail seleccionada.
Leer correo electrónico
EZGmail tiene el objeto GmailThread para representar hilos de conversación y el objeto GmailMessage para correos electrónicos individuales. El atributo de mensajes del objeto GmailThread contiene una lista de objetos GmailMessage para cada mensaje en el hilo de conversación.
- unread() : el método devuelve una lista de objetos GmailThread para hilos no leídos.
- resumen(): cuando se llama en la lista de objetos de hilo, devuelve un resumen de los mensajes en el hilo.
- mensajes : atributo del objeto GmailThread que devuelve una lista de objetos GmailMessage . Cada uno de estos tiene atributos que describen el correo electrónico como asunto , cuerpo , marca de tiempo , remitente y destinatario.
- recent() : función que devuelve una lista de objetos GmailThread para hilos recientes. El parámetro maxResults se usa para establecer la cantidad de correos electrónicos recientes que se mostrarán. El valor predeterminado es 25.
Ejemplo:
Python3
import ezgmail # unread emails unread = ezgmail.unread() print("Summary: "+str(ezgmail.summary(unread))) print("The first thread in the list: " + str(unread[0])) print("The first message in the first thread: " + str(unread[0].messages[0])) # attributes of the first message message = unread[0].messages[0] # subject print("subject: "+str(message.subject)) # body print("body: "+str(message.body)) # sender print("sender: "+str(message.sender)) # timestamp print("timestamp: "+str(message.timestamp)) # recent emails recent = ezgmail.recent(maxResults=10) print("List of recent threads: " + str(recent))
Búsqueda de correos electrónicos
También podemos buscar correos electrónicos específicos, de la misma manera ingresamos consultas en el cuadro de búsqueda de gmail. La función search() devuelve una lista de objetos GmailMessage que coinciden con el parámetro de búsqueda. También podemos realizar operaciones especiales de búsqueda como:
- ‘from:sender@email.com’: obtener correos electrónicos de un remitente en particular
- ‘subject:Python’: correos electrónicos con un asunto específico
- ‘label:UNREAD’ : correos electrónicos no leídos
- ‘has:attachment’ : correos electrónicos que contienen un archivo adjunto
Ejemplo:
Python3
import ezgmail # searching for specific emails results = ezgmail.search('geeksforgeeks') print(results[0]) # special searches results = ezgmail.search('has:attachment') print(results[0])
Descarga de archivos adjuntos
Los archivos adjuntos a un mensaje se pueden descargar pasando el nombre de cada archivo a la función downloadAttachment() .
- El atributo de archivos adjuntos del objeto GmailMessage devuelve una lista de nombres de los archivos adjuntos con el correo electrónico.
- El método downloadAttachment() toma como argumento cualquiera de estos nombres de archivo y descarga ese archivo.
- El método downloadAllAttachments() se utiliza para descargar todos los archivos a la vez.
Ejemplo:
Python3
import ezgmail # searching emails # with attachments results = ezgmail.search('has:attachment') # list of attached filenames files_attached = results[0].messages[0].attachments # downloading the first file # in the list print('Downloading '+files_attached[0]) results[0].messages[0].downloadAttachment(files_attached[0])
Publicación traducida automáticamente
Artículo escrito por cosine1509 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA