Flask Mail allows you to send emails using an SMTP client previously configured in the Flask application; to install the package, we have:
$ pip install flask-mail
We will configure the SMTP server to which we are going to connect in the configuration file:
app\my_app\config.py
class DevConfig(Config):
MAIL_SERVER = 'localhost'
MAIL_PORT = 25
MAIL_USERNAME = 'username'
MAIL_PASSWORD = 'password'
And in development mode, we also enable:
app\my_app\config.py
class DevConfig(Config):
***
MAIL_DEBUG = True
MAIL_SUPPRESS_SEND = False
TESTING = True
We register the extension globally at the application level:
app\my_app\__init__.py
from flask_mail import Mail
***
mail = Mail()
mail.init_app(app)
You can use the following code as a reference to send emails according to the configurations made previously:
from flask_mail import Message
from my_app import mail
def send_email():
msg = Message(body="Text Example",
sender="no-reply@MyWeb.net",
recipients=["andres@gmail.com"], subject="Subject")
try:
print(mail.send(msg))
except Exception as e:
print(e)
If you want to define HTML content:
msg = Message("Hello", sender=("Me", "me@example.com"))
msg.html = "<b>testing</b>"
Or just text:
msg = Message("Hello", sender=("Me", "me@example.com"))
msg.body = "testing"
You can get more information at:
https://pythonhosted.org/Flask-Mail/
Develop with Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter