Ошибка типа: аргумент типа "Почта" не повторяется

Я работаю над этим приложением подтверждения по электронной почте, используя 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)
Другие вопросы по тегам