Flask-Mail not sending emails, no error is being reported
Flask-Email
use smtplib
which can set debug level: https://github.com/mattupstate/flask-mail/blob/master/flask_mail.py#L139. You can set it with MAIL_DEBUG = True
or DEBUG = True
. Also check that MAIL_SUPPRESS_SEND = False
and TESTING = False
.
With debug I can see in stdout
mail progress: success, fail, recipients and etc.
See details: http://pythonhosted.org/Flask-Mail/#configuring-flask-mail.
tbicr has the most likely fix, check MAIL_SUPPRESS_SEND first.
What ended up burning me (being new to flask) is that when you instantiate your Mail() object, be sure it's after you've set your app.config values. The Mail() object doesn't go back and look at these values after the fact, so they will default to bad values. What's frustrating is that you won't see any errors when you try to send messages with the default/bad values. At least not as of my posting.
I know this post is from a while ago, but I just ran into the same issue. Like @tbicr mentioned make sure that app.testing
is set to False
. As it states in the Flask-Mail
docs here:
"If the setting TESTING
is set to True
, emails will be suppressed. Calling send()
on your messages will not result in any messages being actually sent."
This was exactly my problem. I implemented Google reCAPTCHA into one of my forms and the app.testing
was set to True
so I did not have to hit the reCAPTCHA box every time. By removing the app.testing
or by setting it to False
, the emails were able to be sent.