Install to Claude Code
npx -y skills add https://github.com/aj-geddes/useful-ai-prompts --skill email-service-integrationDescription
email service integration
SKILL.md
---
name: email-service-integration
description: >
Integrate email services with backends using SMTP, third-party providers,
templates, and asynchronous sending. Use when implementing email
functionality, sending transactional emails, and managing email workflows.
---
# Email Service Integration
## Table of Contents
- [Overview](#overview)
- [When to Use](#when-to-use)
- [Quick Start](#quick-start)
- [Reference Guides](#reference-guides)
- [Best Practices](#best-practices)
## Overview
Build comprehensive email systems with SMTP integration, third-party email providers (SendGrid, Mailgun, AWS SES), HTML templates, email validation, retry mechanisms, and proper error handling.
## When to Use
- Sending transactional emails
- Implementing welcome/confirmation emails
- Creating password reset flows
- Sending notification emails
- Building email templates
- Managing bulk email campaigns
## Quick Start
Minimal working example:
```python
# config.py
import os
class EmailConfig:
MAIL_SERVER = os.getenv('MAIL_SERVER', 'smtp.gmail.com')
MAIL_PORT = int(os.getenv('MAIL_PORT', 587))
MAIL_USE_TLS = os.getenv('MAIL_USE_TLS', True)
MAIL_USERNAME = os.getenv('MAIL_USERNAME')
MAIL_PASSWORD = os.getenv('MAIL_PASSWORD')
MAIL_DEFAULT_SENDER = os.getenv('MAIL_DEFAULT_SENDER', 'noreply@example.com')
# email_service.py
from flask_mail import Mail, Message
from flask import render_template_string
import logging
from datetime import datetime
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
logger = logging.getLogger(__name__)
mail = Mail()
class EmailService:
def __init__(self, app=None):
// ... (see reference guides for full implementation)
```
## Reference Guides
Detailed implementations in the `references/` directory:
| Guide | Contents |
|---|---|
| [Python/Flask with SMTP](references/pythonflask-with-smtp.md) | Python/Flask with SMTP |
| [Node.js with SendGrid](references/nodejs-with-sendgrid.md) | Node.js with SendGrid |
| [Email Templates with Mjml](references/email-templates-with-mjml.md) | Email Templates with Mjml |
| [FastAPI Email with Background Tasks](references/fastapi-email-with-background-tasks.md) | FastAPI Email with Background Tasks |
| [Email Validation and Verification](references/email-validation-and-verification.md) | Email Validation and Verification |
## Best Practices
### ✅ DO
- Use transactional email providers for reliability
- Implement email templates for consistency
- Add unsubscribe links (required by law)
- Use background tasks for email sending
- Implement proper error handling and retries
- Validate email addresses before sending
- Add rate limiting to prevent abuse
- Monitor email delivery and bounces
- Use SMTP authentication
- Test emails in development environment
### ❌ DON'T
- Send emails synchronously in request handlers
- Store passwords in code
- Send sensitive information in emails
- Use generic email addresses for sensitive operations
- Skip email validation
- Ignore bounce and complaint notifications
- Use HTML email with inline styles excessively
- Forget to handle failed email deliveries
- Send emails without proper templates
- Store email addresses without consent
