【问题标题】:TypeError: send_mail() missing 3 required positional arguments: 'message', 'from_email', and 'recipient_list'类型错误:send_mail() 缺少 3 个必需的位置参数:'message'、'from_email' 和 'recipient_list'
【发布时间】:2021-06-21 15:14:07
【问题描述】:

所以我想做这个表格,客户填写他们的姓名、电子邮件和消息。然后那条消息和他们的名字被发送到我的邮件地址,另一封邮件从我的地址发送给客户,告诉客户他们的邮件发送成功。 我已经在另一个项目上这样做了,实际上只是复制了更改函数的名称 n 东西,但它不起作用。

views.py

def send_email(email):
    context = {'email': email}
    template = get_template('emails/message-confirmation.html')
    content = template.render(context)
    email = EmailMultiAlternatives(
        'Test email',
        'AmiSalta message confirmation',
        settings.EMAIL_HOST_USER,
        [email]
    )
    email.attach_alternative(content, 'text/html')
    email.send()


def function(request):
    form = ContactForm_es()
    if request.method == 'POST':
        email = request.POST.get('email')
        send_mail(email)
        form = ContactForm_es(request.POST)
        if form.is_valid():
            email = form.cleaned_data['email']
            full_name = form.cleaned_data['full_name']
            body = form.cleaned_data['body']
            send_mail(full_name,body,email, ['******@gmail.com'])

    return render(request, 'es/home.html', {
            'form': form,
    })

我快疯了,因为这是我需要做的最后一件事,我已经做过一次,但我就是无法让它发挥作用。如果有人知道出了什么问题,请告诉我,提前谢谢。

【问题讨论】:

    标签: forms django-views sendmail


    【解决方案1】:

    我遇到了同样的问题,我做错的事情是在 URLs.py 文件中我直接调用 send_mail 而不是发送邮件的 veiw_func 这就是为什么它说所有三个必需参数不见了。

    检查您的 URLs.py 文件,您可能遇到同样的问题

    【讨论】:

      【解决方案2】:

      检查您是否在urls.py 中使用send_email 而不是send_mail。您的函数名称与 django 的 send_mail() 函数非常相似。你很容易把自己弄糊涂。

      【讨论】:

      • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-16
      • 2022-06-28
      • 2022-01-11
      • 1970-01-01
      • 2018-09-12
      • 2021-08-05
      相关资源
      最近更新 更多