Enviar email usando FAST API con fastapi_mail

Tiempo de lectura: 2 minutos

En este tutorial, te enseñaré cómo enviar correos electrónicos usando FastAPI y fastapi_mail.

FastAPI es un framework web moderno y rápido para construir APIs con Python 3.6+ basado en el estándar ASGI y con la filosofía «menos código, más productividad». Por otro lado, fastapi_mail es una extensión de FastAPI que permite enviar correos electrónicos de manera sencilla y rápida.

Para empezar, asegúrate de tener Python 3.6+ instalado en tu sistema. Luego, sigue los siguientes pasos:

Paso 1: Instalación de fastapi_mail

Para instalar fastapi_mail, simplemente ejecuta el siguiente comando en tu terminal:

pip install fastapi-mail

Paso 2: Configuración de FastAPI

Antes de enviar correos electrónicos, necesitas configurar FastAPI para usar fastapi_mail. Para ello, crea un archivo main.py con el siguiente contenido:

from fastapi import FastAPI
from fastapi_mail import FastMail, MessageSchema, ConnectionConfig

app = FastAPI()

conf = ConnectionConfig(
    MAIL_USERNAME = "your_email_address",
    MAIL_PASSWORD = "your_email_password",
    MAIL_FROM = "your_email_address",
    MAIL_PORT = 587,
    MAIL_SERVER = "smtp.gmail.com",
    MAIL_TLS = True,
    MAIL_SSL = False
)

@app.post("/send-email")
async def send_email(subject: str, email_to: str, body: str):
    message = MessageSchema(
        subject=subject,
        recipients=[email_to],
        body=body,
        subtype="html"
    )
    fm = FastMail(conf)
    await fm.send_message(message)
    return {"message": "email has been sent"}

En el código anterior, estamos configurando los detalles de la conexión de correo electrónico (servidor SMTP, puertos, credenciales, etc.) en la variable conf. Luego, definimos la ruta send-email que acepta tres parámetros: subject, email_to y body. Finalmente, creamos una instancia de FastMail con la configuración previamente definida y usamos el método send_message para enviar el correo electrónico.

Nota: En el ejemplo anterior se usó una cuenta de Gmail para enviar correos electrónicos. Asegúrate de permitir el acceso de aplicaciones menos seguras en la cuenta de Gmail si es que tienes problemas para enviar correos electrónicos.

Paso 3: Prueba de envío de correo electrónico

Para probar el envío de correo electrónico, simplemente ejecuta tu servidor FastAPI y envía una solicitud POST a http://localhost:8000/send-email con los siguientes datos de ejemplo:

{
    "subject": "Correo de prueba",
    "email_to": "destinatario@example.com",
    "body": "<h1>¡Hola!</h1><p>Este es un correo de prueba enviado desde FastAPI.</p>"
}

Si todo está configurado correctamente, deberías recibir un correo electrónico en la dirección especificada en email_to.

¡Eso es todo! Ahora ya sabes cómo enviar correos electrónicos con FastAPI y fastapi_mail. Si necesitas más información sobre fastapi_mail, revisa la documentación oficial en: https://fastapi-mail.readthedocs.io/en/latest/.

Deja un comentario