Странный Django TypeError: send mail() принимает по крайней мере 4 аргумента (4 дано)


Я пытаюсь на самом деле проверить отправку электронной почты с помощью mailtrap.io, и я настраиваю почтовый сервер, как указано, однако, когда я пытаюсь сделать следующее:

form = InterestedForm(request.POST)
if form.is_valid():
    name = form.cleaned_data['name']
    email = form.cleaned_data['email']
    subject = "Index form: Interested in Ucodon"
    message = 'Name: ' + name + 'n' + 'Email: ' + email
    recipients=['test@gmail.com']
    send_mail(subject, message, recipients, fail_silently=False)
    thanks = True

Я получаю следующую ошибку:

TypeError: send_mail() takes at least 4 arguments (4 given)

Я даже попробовал следующее:

send_mail(subject=subject, message=message, recipients=recipients, fail_silently=False)

Кроме того, я определил EMAIL_HOST_USER. В настоящее время я использую EMAIL_HOST='mailtrap.io".

2 3

2 ответа:

Согласно документации :

send_mail(subject, message, from_email, recipient_list, fail_silently=False, auth_user=None, auth_password=None, connection=None, html_message=None)¶

Вам не хватает аргумента from_email.

Либо установите его, либо передайте None - в этом случае Django будет использовать DEFAULT_FROM_EMAIL значение настройки:

send_mail(subject, message, None, recipients, fail_silently=False)

Требуется тема, сообщение, from_email и получатель. Я не вижу, что вы предоставили from_email. Вы можете обратиться к https://docs.djangoproject.com/en/dev/topics/email/#send-mail для получения дополнительной информации.