Configure Flask-Mail to use GMail
26,644
Solution 1
- The server is "smtp.gmail.com".
- The port must match the type of security used.
- If using STARTTLS with
MAIL_USE_TLS = True
, then useMAIL_PORT = 587
. - If using SSL/TLS directly with
MAIL_USE_SSL = True
, then useMAIL_PORT = 465
. - Enable either STARTTLS or SSL/TLS, not both.
- If using STARTTLS with
- Depending on your Google account's security settings, you may need to generate and use an app password rather than the account password. This may also require enabling 2-step verification. You should probably set this up anyway.
MAIL_SERVER = 'smtp.gmail.com'
MAIL_PORT = 465
MAIL_USE_SSL = True
MAIL_USERNAME = '[email protected]'
MAIL_PASSWORD = 'app password generated in step 3'
Solution 2
A small but important addition to davidism's answer:
You must have '2-step verification' enabled on your Google account before you're able to set up app-specific passwords.
Author by
stevenperry94
Updated on July 09, 2022Comments
-
stevenperry94 almost 2 years
When I try to send an email using Flask-Mail to Gmail's SMTP server using the settings below, I get
[Errno -2] Name or service not known
. How do I fix my configuration to send email with Gmail?from flask import Flask, render_template, redirect, url_for from flask_mail import Mail, Message app = Flask(__name__) app.config.update( MAIL_SERVER='[email protected]', MAIL_PORT=587, MAIL_USE_SSL=True, MAIL_USERNAME = 'ri******[email protected]', MAIL_PASSWORD = 'Ma*****fe' ) mail = Mail(app) @app.route('/send-mail/') def send_mail(): msg = mail.send_message( 'Send Mail tutorial!', sender='ri******[email protected]', recipients=['ri*********[email protected]'], body="Congratulations you've succeeded!" ) return 'Mail sent'
-
sniperd almost 6 yearsThis should probably be a comment, and not its own answer.