Я стараюсь следовать this tutorial. Когда я пытаюсь отправить форму контакта, которая должна вызывать электронное письмо, я получаю внутреннюю ошибку сервера. Журнал ошибок говорит:Как правильно настроить флеш-почту
RuntimeError: The curent application was not configured with Flask-Mail
инструкции говорят, чтобы использовать from flask.ext.mail
импортировать, но я видел, что это может быть from flask_mail
в настоящее время. Я также попытался изменить почтовый порт с 465 до 587. Ни одна из этих изменений не устранила проблему. Самое до настоящего времени код:
from flask import Flask, render_template, request, flash
from forms import ContactForm
from flask_mail import Mail, Message
mail = Mail()
app = Flask(__name__)
app.secret_key = 'development key'
app.config["MAIL_SERVER"] = "smtp.gmail.com"
app.config["MAIL_PORT"] = 587
app.config["MAIL_USE_SSL"] = True
app.config["MAIL_USERNAME"] = '[email protected]' ## CHANGE THIS
app.config["MAIL_PASSWORD"] = 'password'
mail.init_app(app)
app = Flask(__name__)
app.secret_key = 'Oh Wow This Is A Super Secret Development Key'
@app.route('/')
def home():
return render_template('home.html')
@app.route('/about')
def about():
return render_template('about.html')
@app.route('/contact', methods=['GET', 'POST'])
def contact():
form = ContactForm()
if request.method == 'POST':
if form.validate() == False:
flash('All fields are required.')
return render_template('contact.html', form=form)
else:
msg = Message(form.subject.data, sender='[email protected]', recipients=['[email protected]'])
msg.body = """
From: %s <%s>
%s
""" % (form.name.data, form.email.data, form.message.data)
mail.send(msg)
return render_template('contact.html', success=True)
elif request.method == 'GET':
return render_template('contact.html', form=form)
if __name__ == '__main__':
app.run(debug=True)
Я внес изменения. Спасибо, я полностью пропустил это. Затем я получил новую ошибку, которая, к сожалению, позволила мне потеряться в моем журнале. Я также получил предупреждение от gmail: «Учетная запись Google: попытка входа в систему заблокирована». Я включил настройку менее безопасных приложений. Я сейчас получаю новый Внутренняя ошибка сервера со следующим в моем журнале «SSLError: [Errno 1] _ssl.c: 510: ошибка: 140770FC: SSL процедуры: SSL23_GET_SERVER_HELLO: неизвестный протокол» Я попробовал оба порта и импортировать заявления с тем же результатом. – ExperimentsWithCode
звучит хорошо. Я не был уверен в этой политике. Спасибо за помощь! – ExperimentsWithCode