Configurar API de Gmail para enviar correos

Author
Por Darío Rivera
Publicado el en Google Cloud

La API de Gmail es una interfaz de programación de aplicaciones proporcionada por Google que permite a los desarrolladores interactuar con Gmail, el servicio de correo electrónico de Google. Proporciona un conjunto de métodos y recursos para acceder, administrar y manipular la cuenta de Gmail de un usuario de forma programática. La API permite a los desarrolladores crear, leer, actualizar y eliminar mensajes de correo electrónico, etiquetas, hilos y borradores.

Casos de uso

Integración de clientes de correo electrónico: Los desarrolladores pueden utilizar la API de Gmail para construir clientes de correo electrónico personalizados que ofrecen características y funcionalidades únicas sobre Gmail. Esto permite a los usuarios acceder a sus cuentas de Gmail, enviar y recibir correos electrónicos, administrar etiquetas y hilos, y realizar búsquedas avanzadas desde el cliente personalizado.

Automatización de flujos de trabajo: Al aprovechar la API de Gmail, los desarrolladores pueden automatizar flujos de trabajo basados en correo electrónico. Por ejemplo, pueden crear aplicaciones que procesen automáticamente correos electrónicos entrantes, extraigan información relevante y activen acciones según criterios específicos, como reenviar correos electrónicos a diferentes destinatarios, guardar archivos adjuntos en almacenamiento en la nube o generar respuestas automáticas.

Análisis y supervisión de correo electrónico: La API de Gmail permite a los desarrolladores extraer datos de correo electrónico, como metadatos de mensajes, información de hilos y contenido de correos electrónicos. Estos datos se pueden utilizar para construir herramientas de análisis que brinden información sobre patrones de uso de correo electrónico, realicen análisis de sentimiento en conversaciones de correo electrónico o supervisen la comunicación por correo electrónico para fines de cumplimiento normativo.

Requisitos para utilizar la API

Antes de comenzar a utilizar la API, necesitaremos lo siguiente:

- Un proyecto en la Consola de Google Cloud
- Habilitar la API de Gmail
- Crear claves de API

Crear un proyecto en la Consola de Google Cloud

Para comenzar, el primer paso es crear un proyecto en Google Cloud. Si ya tienes un proyecto existente, puedes omitir este paso en particular. Para saber si ya tienes un proyecto activo, sigue estas sencillas instrucciones:

- Ve a la Consola de Google Cloud.
- En la barra de navegación superior, selecciona el proyecto actual y haz clic en "Crear proyecto".

screenshot of selecting projects

- Haz clic en "Crear proyecto" o "Proyecto nuevo".
- Ingresa un nombre para el proyecto y haz clic en "Crear". Opcionalmente, puedes seleccionar la organización en la que deseas crear el nuevo proyecto.

creating a new project in google console

Habilitar la API de Gmail

Lo primero que debes hacer es ir a la documentación de Implementación oficial de la API. Debes hacer clic en el enlace usar la herramienta de configuración para registrarte en Google Cloud si aún no lo has hecho. En ese caso, verás una ventana de confirmación para aceptar los términos de servicio. Observa el proyecto en la parte superior, puedes cambiarlo si estás en el incorrecto.

captura de pantalla de habilitación de acceso a la API

A continuación, debes hacer clic en "Habilitar" para que los servicios de API estén disponibles en tu Consola de Google Cloud.

captura de pantalla de habilitación de acceso a la API

Crear claves de API

Una vez hecho esto, puedes ir a la barra lateral izquierda a API y servicios > Credenciales.

captura de pantalla de habilitación de acceso a la API

Haz clic en el botón + Crear credenciales y selecciona Clave de API.

captura de pantalla de habilitación de acceso a la API

Verás una ventana de confirmación.

Restricción de acceso de la clave de API

Una vez que se crea una nueva clave, verás una alerta de confirmación como la siguiente.

captura de pantalla de habilitación de acceso a la API

Haz clic en "Editar clave de API" y restringe el acceso según sea necesario. Puedes restringir el acceso para permitir que ciertas direcciones IP o sitios web utilicen la clave de API.

Consumir la API

Una vez que tienes toda la configuración y herramientas necesarias, consumir la API es relativamente sencillo. Dependiendo del lenguaje de programación que estés utilizando, deberás usar una biblioteca específica. En el siguiente ejemplo, utilizamos Python para enviar un correo electrónico simple.

import os
from google.auth.transport.requests import Request
from google.oauth2.service_account import Credentials
from googleapiclient.discovery import build

# Clave de API de Gmail
api_key = 'TU_API_KEY_DE_GMAIL'

# Alcance de la API de Gmail
SCOPES = ['https://www.googleapis.com/auth/gmail.compose']

def create_gmail_service():
    # Crear credenciales utilizando la clave de API
    creds = Credentials.from_authorized_user_info(api_key, scopes=SCOPES)

    # Actualizar las credenciales si han caducado
    if creds and creds.expired and creds.refresh_token:
        creds.refresh(Request

())

    # Crear una instancia del servicio de Gmail
    service = build('gmail', 'v1', credentials=creds)

    return service

def send_email(sender, to, subject, message):
    service = create_gmail_service()

    email_message = f"From: {sender}\nTo: {to}\nSubject: {subject}\n\n{message}"

    # enviar el correo electrónico utilizando la API de Google Gmail
    message = (service.users().messages().send(
        userId='me',
        body={'raw': base64.urlsafe_b64encode(email_message.encode()).decode()}
    ).execute())

    print("Correo electrónico enviado correctamente.")

# Ejemplo de uso
sender = 'tucorreo@gmail.com'
recipient = 'destinatario@example.com'
subject = 'Hola desde la API de Gmail'
message = '¡Hola!\n\nEste correo electrónico fue enviado utilizando la API de Google Gmail.'

send_email(sender, recipient, subject, message)

Donde:

TU_API_KEY_DE_GMAIL

Es la clave de API obtenida en los pasos anteriores.


Acerca de Darío Rivera

Author

Application Architect at Elentra Corp . Quality developer and passionate learner with 10+ years of experience in web technologies. Creator of EasyHttp , an standard way to consume HTTP Clients.

LinkedIn Twitter Instagram

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.