Ошибка типа: аргумент типа "Почта" не повторяется
Я работаю над этим приложением подтверждения по электронной почте, используя Flask. для этого я использую flask_mail(очевидно), но я получаю эту ошибку:
Ошибка типа: аргумент типа "Почта" не повторяется
@app.route('/email', methods=['GET', 'POST'])
def send_mail():
getting = request.form.get('mail')
token = s.dumps(getting, salt='email-confirm')
msg = Message('Confirm Email', sender='vatsalayvk1434@gmail.com', recipients=[mail])
link = url_for('confirm_mail', token=token, _externel=True)
msg.body = f'Your Link is {link}'
mail.send(msg)
return render_template('confirm.html', getting=getting, token=token)
1 ответ
Вы передали неправильное значение получателям.
Вот:
@app.route('/email', methods=['GET', 'POST'])
def send_mail():
getting = request.form.get('mail')
token = s.dumps(getting, salt='email-confirm')
msg = Message('Confirm Email', sender='vatsalayvk1434@gmail.com', recipients=[mail])
link = url_for('confirm_mail', token=token, _externel=True)
msg.body = f'Your Link is {link}'
mail.send(msg)
return render_template('confirm.html', getting=getting, token=token)
Вы передали параметр получателей, список с переменной mail вместо списка адресов электронной почты, на которые вы намереваетесь отправлять письма. Я предполагаю, что вы передаете объект Mail получателю.
Я предполагаю, что адрес, на который вы хотите отправить электронное письмо, находится в переменной получения.
Решение:
@app.route('/email', methods=['GET', 'POST'])
def send_mail():
getting = request.form.get('mail')
token = s.dumps(getting, salt='email-confirm')
# msg = Message('Confirm Email', sender='vatsalayvk1434@gmail.com', recipients=[getting])
# To send the mail to yourself
msg = Message('Confirm Email', sender='vatsalayvk1434@gmail.com', recipients=['vatsalayvk1434@gmail.com'])
link = url_for('confirm_mail', token=token, _externel=True)
msg.body = f'Your Link is {link}'
mail.send(msg)
return render_template('confirm.html', getting=getting, token=token)