Skip to main content

Modern Flask mail system for 2026+ with async support, bulk operations, and full Flask 3.1+ compatibility

Project description

โœ‰๏ธ Flask-Mailing v3.0.0 ๐Ÿš€

Flask mail logo

Python 3.10+ Flask 3.1+ Pydantic v2.11+ Async Ready Security Enhanced

๐ŸŒŸ The Future of Flask Email - Available Today!

Flask-Mailing v3.0.0 represents the pinnacle of modern Python email handling. Built for 2026 and beyond, it combines cutting-edge Python 3.10+ features, Flask 3.1+ compatibility, and enterprise-grade security into one powerful package.

โœจ What's Revolutionary in v3.0.0

๐ŸŽฏ Modern Python Excellence

  • โœ… Python 3.10+ Required - Modern union syntax (str | None) and built-in generics
  • โœ… Python 3.14 Ready - Future-proof architecture
  • โœ… Type Safety First - Full type hints with mypy validation
  • โœ… Performance Optimized - Built for modern Python performance gains

๐Ÿ›ก๏ธ Enterprise Security

  • ๐Ÿ”’ Rate Limiting - Prevent abuse with built-in rate limiting
  • ๐Ÿ›ก๏ธ Email Security Validation - Detect and block disposable/malicious emails
  • ๐Ÿ” Path Traversal Protection - Enhanced file attachment security
  • ๐Ÿšจ Content Sanitization - Prevent injection attacks
  • ๐Ÿ” Security Scanning - Automated vulnerability detection

โšก Next-Gen Architecture

  • ๐Ÿ”„ Modern Async Patterns - Proper context managers and error handling
  • ๐Ÿ“ฆ Pydantic v2.11+ - Latest validation with enhanced performance
  • ๐Ÿ—๏ธ Modern Build System - Ruff, Black, isort, mypy integration
  • ๐Ÿณ Container Ready - Docker support with security best practices

๐Ÿ“‹ Requirements

  • Python 3.10+ (3.14 compatible!)
  • Flask 3.1+ with async support
  • Modern development environment

๐Ÿ”ง Installation

# 2026-Ready Installation (Python 3.10+ required)
pip install flask-mailing>=3.0.0

# With enhanced security features
pip install flask-mailing[email-checking]

# Full development setup
pip install flask-mailing[dev,email-checking]

๐Ÿ“ฆ Development Installation

git clone https://github.com/marktennyson/flask-mailing.git
cd flask-mailing
pip install -e ".[dev,email-checking]"

๐Ÿš€ Modern Quick Start

Flask 3.1+ with Modern Python Features

from flask import Flask, jsonify
from flask_mailing import Mail, Message

app = Flask(__name__)

# Configuration for Flask 3.x
app.config.update(
    MAIL_USERNAME="your.email@gmail.com",
    MAIL_PASSWORD="your_app_password", 
    MAIL_PORT=587,
    MAIL_SERVER="smtp.gmail.com",
    MAIL_USE_TLS=True,
    MAIL_USE_SSL=False,
    USE_CREDENTIALS=True,
    VALIDATE_CERTS=True,
    MAIL_DEFAULT_SENDER="your.email@gmail.com",
    MAIL_FROM_NAME="Your App Name"
)

mail = Mail(app)

@app.post("/send-email")
async def send_email():
    message = Message(
        subject="Flask-Mailing v3.0.0 Test",
        recipients=["recipient@example.com"],
        body="Hello from Flask-Mailing v3.0.0! ๐Ÿš€\n\nNow with Python 3.10-3.14 and Flask 3.x support!",
        subtype="plain"
    )
    
    await mail.send_message(message)
    return jsonify({"status": "Email sent successfully!"})

if __name__ == "__main__":
    app.run(debug=True)

HTML Email with Modern Syntax

@app.post("/send-html")
async def send_html():
    html_content = """
    <html>
        <body style="font-family: Arial, sans-serif;">
            <h1 style="color: #2c3e50;">Welcome to Flask-Mailing v3.0.0!</h1>
            <p>This email was sent using the modernized Flask-Mailing library.</p>
            <ul>
                <li>โœ… Python 3.10-3.14 compatible</li>
                <li>โœ… Flask 3.1+ ready</li>
                <li>โœ… Enhanced performance</li>
            </ul>
        </body>
    </html>
    """
    
    message = Message(
        subject="๐Ÿš€ Flask-Mailing v3.0.0 - HTML Email",
        recipients=["recipient@example.com"],
        html=html_content,
        subtype="html"
    )
    
    await mail.send_message(message)
    return jsonify({"status": "HTML email sent!"})

Bulk Email Support

@app.post("/send-bulk")
async def send_bulk():
    email_data = (
        ("Subject 1", "Message 1", ["user1@example.com"]),
        ("Subject 2", "Message 2", ["user2@example.com"]),
        ("Subject 3", "Message 3", ["user3@example.com"]),
    )
    
    await mail.send_mass_mail(email_data)
    return jsonify({"status": "Bulk emails sent successfully!"})

๐Ÿ“– Documentation

For detailed documentation, examples, and API reference:

๐Ÿ”„ Migration from v0.2.x

Breaking Changes in v3.0.0

  • Minimum Python version: 3.10+ (was 3.6+)
  • Minimum Flask version: 3.1+ (was 2.0+)
  • Pydantic v2: Updated from v1.x to v2.11+
  • Email checking utilities: Now optional dependencies

Migration Steps

  1. Upgrade Python to 3.10+ (recommended: 3.12+)
  2. Upgrade Flask to 3.1+
  3. Update requirements.txt:
    # Old
    flask-mailing>=0.2.3
    
    # New  
    flask-mailing>=3.0.0
    
  4. Test your application - most APIs remain the same

๐Ÿ“Š Version Compatibility

Flask-Mailing Python Flask Pydantic Status
3.0.0+ 3.10-3.14 3.1+ 2.11+ โœ… Active
0.2.x 3.6+ 2.0+ 1.8+ ๐Ÿ”’ Legacy

๐Ÿงช Testing

# Run tests with Python 3.13
python -m pytest tests/ -v

# Run with multiple Python versions using tox
tox

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guide for details.

๐Ÿ“‹ Dependencies

Core Dependencies

  • aiosmtplib>=4.0.1 - Async SMTP client
  • flask>=3.1.0 - Web framework
  • pydantic>=2.11.0 - Data validation
  • pydantic-settings>=2.9.0 - Settings management
  • email-validator>=2.3.0 - Email validation
  • jinja2>=3.1.6 - Template engine

Optional Dependencies

  • redis>=5.3.0 - For email checking features
  • httpx>=0.28.1 - For HTTP-based email validation
  • dnspython>=2.8.0 - For DNS-based validation

๐Ÿ“œ License

MIT License

๐Ÿ“Š Stats

Downloads Monthly Downloads Weekly Downloads

๐Ÿ”— Links


Made with โค๏ธ for the Python & Flask community

Flask-Mailing v3.0.0 - Ready for the future of Python development!

Star History

Star History Chart


Key Features :sparkles:

  1. :arrows_counterclockwise: Supports asynchronous email sending using the built-in asyncio library in Python 3.10+.

  2. :link: Easily integrates with Flask applications using the provided Mail extension.

  3. :gear: Offers simple and intuitive configuration options for email providers such as SMTP, Sendgrid, and Mailgun.

  4. :envelope: Supports HTML and plain-text message formats, as well as the option to send both formats in a multi-part message.

  5. :paperclip: Provides support for file attachments in emails.

  6. :art: Includes customizable email templates and support for Jinja2 templates.

  7. :rocket: Offers a simple API for sending email messages, allowing for quick and easy implementation in any Flask project.

  8. :email: Supports bulk email sending, allowing for the efficient delivery of messages to large email lists.

  9. :bookmark_tabs: Provides options for customizing email headers and message priority levels.

  10. :chart_with_upwards_trend: Supports email tracking through message IDs and delivery status notifications.

  11. :microscope: Includes a comprehensive testing suite for ensuring the correct configuration and behavior of the email sending functionality.

  12. :lock: Supports email encryption and authentication using TLS and SSL protocols.

  13. :warning: Offers error handling and logging functionality for tracking and resolving email sending issues.

  14. :book: Provides detailed documentation and active community support for resolving any issues or questions related to the package.

More information on Getting-Started

๐Ÿ“ฅ Downloads

Downloads Downloads Downloads

๐Ÿš‘ Package health score by snyk.io

Flask-Mailing

๐Ÿ”— Important Links

โค๏ธ Github

๐Ÿ“„ Documentation

๐Ÿ PYPI

๐Ÿ˜€ Contributors โœจ

Thanks go to these wonderful people ([๐Ÿšง]):



Aniket Sarkar

๐Ÿ’ฌ ๐Ÿ‘€ ๐Ÿšง

Joshua Kinslow


Alexandre Gramfort


ahmetkurukose


Sriram


CharlesTWood

This project follows the all-contributors specification. Contributions of any kind are welcome!

Before you start please read CONTRIBUTING

๐Ÿ“ LICENSE

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flask_mailing-3.0.0.tar.gz (147.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flask_mailing-3.0.0-py3-none-any.whl (31.3 kB view details)

Uploaded Python 3

File details

Details for the file flask_mailing-3.0.0.tar.gz.

File metadata

  • Download URL: flask_mailing-3.0.0.tar.gz
  • Upload date:
  • Size: 147.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for flask_mailing-3.0.0.tar.gz
Algorithm Hash digest
SHA256 fa6b7a9efded4ce7d3c60afaa595c34771e330aa739673efd65940397f0864c6
MD5 10d3dde80dc460dbcb53c7b193ecf042
BLAKE2b-256 2d162f19b6fca9615a8fef34c7ff42f29948bd92b87e0798bac809ce6543ff3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for flask_mailing-3.0.0.tar.gz:

Publisher: ci.yml on marktennyson/flask-mailing

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flask_mailing-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: flask_mailing-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 31.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for flask_mailing-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 68a19eec57522c9d6127ddc2acdf831e5fb004a98a48b8bb855b556929d1fd0b
MD5 a29467e305ac49b0d6c11095ad14a5ce
BLAKE2b-256 be81d8ee1a6f5caf04897abd48ece115a72246637b10333501e5a9938c3afb85

See more details on using hashes here.

Provenance

The following attestation bundles were made for flask_mailing-3.0.0-py3-none-any.whl:

Publisher: ci.yml on marktennyson/flask-mailing

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page