Skip to content

Commit

Permalink
Merge pull request #52 from marktennyson/development
Browse files Browse the repository at this point in the history
Pull code from development to main branch
  • Loading branch information
marktennyson authored May 15, 2023
2 parents 0e9c953 + 64a1cb1 commit 6623dfd
Show file tree
Hide file tree
Showing 7 changed files with 76 additions and 22 deletions.
15 changes: 15 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: Docs deployer

on: [push]

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: 3.x
- run: pip install mkdocs
- run: pip install -r requirements.docs.txt
- run: mkdocs gh-deploy --force --clean --verbose
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,4 @@
- `Updated` setup.py.
- `Updated` Readme file.
- `Fixed` version number issue.
- `Added` the compatibility for Python 3.11.
52 changes: 39 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,45 @@
# ✉️ Flask-Mailing
![Flask mail logo](https://github.com/marktennyson/flask-mailing/blob/main/logo/flask-mailing-logo-cropped.png?raw=true)

Flask-Mailing adds SMTP mail sending to your Flask applications
__Flask-Mailing__ is a highly efficient and user-friendly package that enables `Asynchronous` email messaging in Flask applications. Asynchronous email messaging is becoming increasingly popular because it allows applications to continue running while emails are being sent in the background. This makes it an ideal solution for time-sensitive applications that require a fast and responsive user experience.

**Flask_Mail** is dead now. This is the time to migrate a fully asynchronous mailer library to send emails using a Flask-based application. If Flask 2.0 supports the asynchronous view function, then who stops you from using __Flask-Mailing__ ?
With Flask-Mailing, developers can easily integrate asynchronous email messaging capabilities into their Flask applications without the need for complex configurations or additional dependencies. The package offers a variety of features, including support for multiple email providers, email templates, and error handling. It also supports common email protocols, such as `SMTP`, `SSL`, and `TLS`.

__The key features are:__
Moreover, Flask-Mailing offers a simple and intuitive API that allows developers to easily send emails in the background. It also provides advanced features, such as email tracking and reporting, which enable developers to monitor email performance and user engagement.

Whether you're building a small-scale application or a large-scale enterprise system, Flask-Mailing provides a reliable and scalable solution for Asynchronous email messaging in Flask applications.


### Key Features :sparkles:

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

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.

- Most of the Apis is very similar to the `Flask-Mail` module.
- sending emails to either with Flask or using asyncio module.
- sending files either from form-data or files from the 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```.
- Unit tests using Mail.

More information on [Getting-Started](https://marktennyson.github.io/flask-mailing/getting-started)

Expand Down Expand Up @@ -69,14 +95,12 @@ html = """

@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"})
```
Expand All @@ -100,6 +124,8 @@ Thanks go to these wonderful people ([🚧]):
<td align="center"><a href="https://github.com/agramfort"><img src="https://avatars.githubusercontent.com/u/161052?v=4" width="100px;" alt=""/><br /><sub><b>Alexandre Gramfort</b></sub></a><br /></td>
<td align="center"><a href="https://github.com/ahmetkurukose"><img src="https://avatars.githubusercontent.com/u/1325263?v=4" width="100px;" alt=""/><br /><sub><b>
ahmetkurukose</b></sub></a><br /></td>
<td align="center"><a href="https://github.com/Sriram-bb63"><img src="https://avatars.githubusercontent.com/u/71959217?v=4" width="100px;" alt=""/><br /><sub><b>
Sriram</b></sub></a><br /></td>
</tr>
</table>

Expand All @@ -112,4 +138,4 @@ Before you start please read [CONTRIBUTING](https://github.com/marktennyson/flas

# 📝 LICENSE

[MIT](LICENSE)
[MIT](https://raw.githubusercontent.com/marktennyson/flask-mailing/development/LICENSE)
3 changes: 1 addition & 2 deletions docs/example.md
Original file line number Diff line number Diff line change
Expand Up @@ -180,8 +180,7 @@ message = Message(
],
)

fm = FastMail(conf)
await fm.send_message(message)
await mail.send_message(message)
```

## Guide for email utils
Expand Down
4 changes: 2 additions & 2 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class has following attributes
- **MAIL_PASSWORD** : Password for authentication
- **MAIL_SERVER** : SMTP Mail server.
- **MAIL_USE_TLS** : For TLS connection
- **MAIL_USE_SSL** : For TLS connection
- **MAIL_USE_SSL** : For SSL connection
- **MAIL_DEBUG** : Debug mode for while sending mails, defaults 0.
- **MAIL_FROM** : Sender address
- **MAIL_DEFAULT_SENDER** : Sender address
Expand Down Expand Up @@ -77,4 +77,4 @@ WhoIsXmlApi class provide working with api [WhoIsXmlApi](https://www.whoisxmlap
This service gives free 1000 request to checking email address per month.

- token : token you can get from this [WhoIsXmlApi](https://www.whoisxmlapi.com) link
- email : email for checking
- email : email for checking
19 changes: 17 additions & 2 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,23 @@
# Flask-mailing

The flask-mailing simple lightweight mail system, sending emails and attachments(individual && bulk) fully asynchronously.
__Flask-Mailing__ is a highly efficient and user-friendly package that enables `Asynchronous` email messaging in Flask applications. Asynchronous email messaging is becoming increasingly popular because it allows applications to continue running while emails are being sent in the background. This makes it an ideal solution for time-sensitive applications that require a fast and responsive user experience.

Flask_Mail is dead now. To use the mail service with your project you can use eaither [Flask-Mailing](https://github.com/marktennyson/flask-mailing) for legacy or [Flask-Mailman](https://github.com/waynerv/flask-mailman) for Django type implementation.
With Flask-Mailing, developers can easily integrate asynchronous email messaging capabilities into their Flask applications without the need for complex configurations or additional dependencies. The package offers a variety of features, including support for multiple email providers, email templates, and error handling. It also supports common email protocols, such as `SMTP`, `SSL`, and `TLS`.

Moreover, Flask-Mailing offers a simple and intuitive API that allows developers to easily send emails in the background. It also provides advanced features, such as email tracking and reporting, which enable developers to monitor email performance and user engagement.

Whether you're building a small-scale application or a large-scale enterprise system, Flask-Mailing provides a reliable and scalable solution for Asynchronous email messaging in Flask applications.

Flask-Mail has been discontinued. However, you can still use email services with your Flask projects by using either Flask-Mailing for asynchronous implementation or Flask-Mailman for synchronous implementation.

- Flask-Mailing supports asynchronous email sending using the built-in `asyncio` library in Python 3.5+. It easily integrates with Flask applications using the provided `Mail` extension, offers simple and intuitive configuration options for email providers, supports HTML and plain-text message formats, and provides options for customizing email headers and message priority levels. It also includes customizable email templates, supports file attachments, and allows for bulk email sending, email tracking, encryption and authentication, error handling, and logging functionality.

- Flask-Mailman, on the other hand, provides a simple API for sending email messages synchronously, supports HTML and plain-text message formats, allows for customizing email headers and message priority levels, and provides options for email tracking and error handling. It also includes customizable email templates and supports file attachments.

Choose the package that best fits your project's requirements and start using email services with your Flask application!


Flask_Mail is dead now. To use the mail service with your project you can use eaither [Flask-Mailing](https://github.com/marktennyson/flask-mailing) for Asynchronous or [Flask-Mailman](https://github.com/waynerv/flask-mailman) for Synchronous implementation.

[![MIT licensed](https://img.shields.io/github/license/marktennyson/flask-mailing)](https://raw.githubusercontent.com/marktennyson/flask-mailing/master/LICENSE)
[![GitHub stars](https://img.shields.io/github/stars/marktennyson/flask-mailing.svg)](https://github.com/marktennyson/flask-mailing/stargazers)
Expand Down
4 changes: 1 addition & 3 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,4 @@ nav:
- 🕹 Getting Started: getting-started.md
- Example: example.md
- Contribution: contribute.md
- Changelog: changelog.md
- Future Roadmap: future-roadmap.md

- Changelog: changelog.md

0 comments on commit 6623dfd

Please sign in to comment.