奇怪的 Django TypeError:send_mail() 需要至少 4 个参数(给出 4 个)

ngo*_*ire 4 django mail-server

我正在尝试使用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
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

TypeError: send_mail() takes at least 4 arguments (4 given)
Run Code Online (Sandbox Code Playgroud)

我什至尝试过以下方法:

send_mail(subject=subject, message=message, recipients=recipients, fail_silently=False)
Run Code Online (Sandbox Code Playgroud)

另外,我已经定义了 EMAIL_HOST_USER。我目前正在使用 EMAIL_HOST='mailtrap.io'。

ale*_*cxe 5

根据文档

send_mail(subject, message, from_email, recipient_list, fail_silently=False, auth_user=None, auth_password=None, connection=None, html_message=None)¶
Run Code Online (Sandbox Code Playgroud)

你缺少from_email论点。

要么设置它,要么通过None- 在这种情况下,Django 将使用DEFAULT_FROM_EMAIL设置值:

send_mail(subject, message, None, recipients, fail_silently=False)
Run Code Online (Sandbox Code Playgroud)