Skip to main content

Flask mail system sending mails(individual, bulk) attachments(individual, bulk) fully asynchroniously

Project description

✉️ Flask-Mailing

Flask mail logo

Flask-Mailing adds SMTP mail sending to your Flask applications

Flask_Mail is dead now. This is the time to migrate a fully asynchronous based mailer library to send emails while using a Flask based application. Now Flask 2.0 supports the asynchronous view function then who is stopping you to use Flask-Mailing ?

Flask-Mailing is a fork of Sabuhi's Fastapi-Mail package, providing similar functionality. 99% of the work was done by him, and the fork was made mainly provide the same features and the apis for the Flask Microframework.

The key features are:

  • Most of the Apis are very familiar with Flask-Mail module.
  • sending emails with either with Flask or using asyncio module
  • sending files either from form-data or files from server
  • Using Jinja2 HTML Templates
  • email utils (utility allows you to check temporary email addresses, you can block any email or domain)
  • email utils has two available classes DefaultChecker and WhoIsXmlApi
  • Unittests using Mail

More information on Getting-Started

📥 Downloads

Downloads Downloads Downloads

🔗 Important Links

❤️ Github

📄 Documentation

🐍 PYPI

🔨 Installation

 pip install flask-mailing

or install from source code

git clone https://github.com/marktennyson/flask-mailing.git && cd flask-mailing
python -m pip install .

🦮 Guide

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


app = Flask(__name__)

app.config['MAIL_USERNAME'] = "YourUserName"
app.config['MAIL_PASSWORD'] = "strong_password"
app.config['MAIL_PORT'] = 587
app.config['MAIL_SERVER'] = "your mail server"
app.config['MAIL_USE_TLS'] = True
app.config['MAIL_USE_SSL'] = False
app.config['USE_CREDENTIALS'] = True
app.config['VALIDATE_CERTS'] = True
app.config['MAIL_DEFAULT_SENDER'] = "youremailid@doaminname.com"

mail = Mail(app)

html = """
<p>Thanks for using Flask-Mailing</p> 
"""


@app.post("/email")
async def simple_send():

    message = Message(
        subject="Flask-Mailing module",
        recipients=["recipients@email-domain.com"],  # List of recipients, as many as you can pass 
        body=html,
        subtype="html"
        )

    await mail.send_message(message)
    return jsonify(status_code=200, content={"message": "email has been sent"})     

🪜 List of Examples

For more examples of using flask-mailing please check example section

👍 Contributing

Feel free to open issues and send pull requests.

😀 Contributors ✨

Thanks goes to these wonderful people ([🚧]):



Aniket Sarkar

💬 👀 🚧

Joshua Kinslow

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-0.0.7.tar.gz (13.9 kB view hashes)

Uploaded Source

Built Distribution

Flask_Mailing-0.0.7-py3-none-any.whl (16.0 kB view hashes)

Uploaded Python 3

Supported by

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