flask-mail: ConnectionRefusedError при попытке отправить электронное письмо с сервера флешки - PullRequest
0 голосов
/ 31 мая 2019

Я делаю веб-приложение, в котором единственными пользователями являются администраторы, которые могут получать почту с сервера раз в неделю. В настоящее время я просто пытаюсь отправить почту с помощью команды click, чтобы протестировать модуль, но всегда получаю 'ConnectionRefusedError [WinError 10061] ...

Я просмотрел разные посты, где проблема была почти одинаковой, но ни одна из них не решила мою.

Вот моя конфигурация колбы

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_mail import Mail ,Message
from flask_login import LoginManager
from apscheduler.schedulers.background import BackgroundScheduler
import os.path

def mkpath(p):
    return os.path.normpath(
        os.path.join(
            os.path.dirname(__file__),
            p
        )
    )

app = Flask(__name__)
app.debug = True
app.config['SECRET_KEY'] = "847b5600-f639-4d07-803e-de716f4e89b7"
app.config['SQLALCHEMY_DATABASE_URI'] = (
    'sqlite:///'+mkpath('./app.db')
)
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

UPLOAD_FOLDER_CSV = "static/tmp/"
ALLOWED_EXTENSION = set(['csv', 'xls'])
UPLOAD_FOLDER_FLUX = "static/flux/"

MAIL_SERVER = 'smtp.gmail.com'
MAIL_PORT = 465
MAIL_USE_TLS = False
MAIL_USE_SSL = True
MAIL_USERNAME = 'mymail@gmail.com'
MAIL_PASSWORD = 'mygmailpassword'

db = SQLAlchemy(app)
login_manager = LoginManager(app)
scheduler = BackgroundScheduler()
mail = Mail(app)

if __name__ == '__main__':
    app.run(debug=True)

и вот команда, которую я вызываю, чтобы проверить это:

def sendmail():
    msg = Message(
                  recipients=["anothermail@gmail.com"])

    msg.body = "testing"
    mail.connect()
    mail.send(msg)

Спасибо :)

1 Ответ

0 голосов
/ 31 мая 2019

Вы должны обновить конфигурацию перед инициализацией Mail:

app.config['MAIL_SERVER']='smtp.gmail.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USERNAME'] = 'mymail@gmail.com'
app.config['MAIL_PASSWORD'] = 'mygmailpassword'
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USE_SSL'] = True

mail = Mail(app)

Затем вам следует разрешить доступ из менее безопасных приложений через по этой ссылке .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...