Flask-Mail истекает при попытке подключиться к Gmail

У меня есть очень маленькое приложение фляги, которое отправляет электронные письма, используя флеш-почту, но когда я запускаю его, ничего не происходит, нет ошибок, нет исключений, ничего!

это код

from flask import Flask
from flask_mail import Mail, Message

app = Flask(__name__)

DEBUG = True
MAIL_SERVER = 'smtp.gmail.com'
MAIL_PORT = 465
MAIL_USE_TLS = False
MAIL_USE_SSL = True
MAIL_DEBUG = True
MAIL_USERNAME = "myemail@gmail.com"
MAIL_PASSWORD = "mypassword"

app.config.from_object(__name__)

mail = Mail(app)

@app.route("/")
def send_mail():
    msg = Message("Hello",
                  sender="myemail@gmail.com",
                  recipients=["another_email@gmail.com"],
                  body="just testing",
                  )
    mail.send(msg)
    return "Message sent"
if __name__ == '__main__':
    app.run()

Обновить

после очень долгого времени я получил эту ошибкуTimeoutError: [Errno 110] Connection timed out

1 ответ

Решение

Похоже, я решил свою проблему, сначала зайдите на эту страницу, чтобы разблокировать CAPTCHA

https://accounts.google.com/DisplayUnlockCaptcha

затем на эту страницу, чтобы разрешить доступ из менее безопасных приложений https://www.google.com/settings/security/lesssecureapps

Получил то же, что и Мустафа.

Нашел это: https://www.linode.com/docs/guides/running-a-mail-server/

Отправка электронной почты на Linode

В целях борьбы со спамом Linode ограничивает исходящие соединения на портах 25, 465 и 587 на всех Linodes для новых учетных записей, созданных после 5 ноября 2019 года.

Если вам нужно отправлять почту с вашего Linode, мы просим вас сначала настроить (1) допустимые записи DNS A и (2) записи rDNS для любых Linodes, которые вы планируете использовать для отправки почты. Затем откройте заявку в службу поддержки в Linode Manager - мы попросим вас указать имя Linode(ов), которое будет использоваться для рассылки.

После того, как вы выполните эти шаги и предоставите информацию, наша команда поддержки будет рада рассмотреть ваш запрос.

Я попробовал решение, предложенное Али Факи, и оно не сработало для меня, но когда я предпринял дальнейшие попытки (простой код для проверки, в чем проблема), оказалось, что порты рассылки заблокированы поставщиками облачных услуг ( Linode в моем случае), и вам необходимо настроить доменное имя и связаться с ними, чтобы снова открыть его.

Другие вопросы по тегам