Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
怪异的Django TypeError:send_mail()至少接受4个参数(给定4个)_Django_Mail Server - Fatal编程技术网

怪异的Django TypeError:send_mail()至少接受4个参数(给定4个)

怪异的Django TypeError:send_mail()至少接受4个参数(给定4个),django,mail-server,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" mess

我正在尝试使用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
send_mail(subject=subject, message=message, recipients=recipients, fail_silently=False)
我得到以下错误:

TypeError: send_mail() takes at least 4 arguments (4 given)
我甚至尝试过以下方法:

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
send_mail(subject=subject, message=message, recipients=recipients, fail_silently=False)
此外,我还定义了EMAIL\u HOST\u USER。我目前正在使用EMAIL\u HOST='mailtrap.io'。

根据:

您缺少电子邮件中的
参数

设置它,或者传递
None
——在这种情况下,Django将使用设置值:

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

主题、邮件、发件人、电子邮件和收件人均为必填项。我看你没有提供from_电子邮件。您可以参考以了解更多信息。

我认为,如果您在您的设置中定义了电子邮件主机用户,它将默认为from_EMAIL?@ngoctranfire No,
from_EMAIL
应该传入<除非提供,否则代码>电子邮件\u主机\u用户
将用作
身份验证用户
参数值。@ngoctranfire也可以看到。哇,谢谢!但是,它起作用了,我似乎收到了另一个错误,上面写着:SMTPAuthenticationError:(534,'5.7.14…等等…),上面有一个指向我的gmail的链接,但这非常奇怪,因为我所有的电子邮件(从_email,甚至是收件人列表)都没有与之相关的gmail信息。@ngoctranfire btw,您还可以通过电子邮件设置
DEFAULT\u,如果您在
FROM\u EMAIL
中通过
None
,则将使用该设置。我已经更新了答案并将其包括在内。