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/.
Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.