Mailgun is a popular cloud-based email delivery service that provides robust features for sending and managing emails. In this guide, we’ll demonstrate how to integrate Mailgun with your FastAPI application to send emails for user registration, password resets, or other notifications.
Installing Requirements
Install the requests
and mailgun
libraries:
Bash
pip install requests mailgun
Configuring Mailgun
Create a Mailgun account and obtain your API key and domain.
Set environment variables:
Bash
export MAILGUN_API_KEY=your_api_key
export MAILGUN_DOMAIN=your_domain
Sending Emails
Python
from fastapi import APIRouter
import requests
router = APIRouter()
@router.post("/send-email")
async def send_email(recipient_email: str, subject: str, body: str):
url = f"https://api.mailgun.net/v3/{MAILGUN_DOMAIN}/messages"
auth = ("api", MAILGUN_API_KEY)
data = {
"from": "[email protected]",
"to": recipient_email,
"subject": subject,
"text": body
}
response = requests.post(url, auth=auth, data=data)
response.raise_for_status()
return {"message": "Email sent successfully"}
Additional Factors
- Email Templates: Consider using email templates to create consistent and visually appealing emails.
- Attachments: You can attach files to your emails using the Mailgun API.
- Email Verification: Implement email verification to ensure that emails are sent to valid addresses.
- Error Handling: Handle potential errors that may occur during email delivery.
- Security: Protect your API key and avoid exposing it in your code.
By integrating Mailgun with your FastAPI application, you can easily send emails for various purposes, enhancing the user experience and communication capabilities of your application.