【问题标题】:Adding more fields to send_mail向 send_mail 添加更多字段
【发布时间】:2020-04-30 04:47:05
【问题描述】:

我看到有人像这样使用send_mail 函数:

send_mail(subject, message, from_email, ['admin@example.com'])

我的表单有更多字段,例如“姓名”和“电话号码”。如何将这些额外字段传递给 send_mail 函数?

forms.py

class ContactForm(forms.Form):
    name = forms.CharField(required=True)
    phone_number = forms.CharField(required=True)
    from_email = forms.EmailField(required=True)
    subject = forms.CharField(required=True)
    message = forms.CharField(widget=forms.Textarea, required=True)

views.py

def contactView(request):
    if request.method == 'GET':
        form = ContactForm()
    else:
        form = ContactForm(request.POST)
        if form.is_valid():
            subject = form.cleaned_data['subject']
            from_email = form.cleaned_data['from_email']
            message = form.cleaned_data['message']
            try:
                send_mail(subject, message, from_email, ['admin@example.com'])
            except BadHeaderError:
                return HttpResponse('Invalid header found.')
            return redirect('success')
    return render(request, "email.html", {'form': form})

【问题讨论】:

    标签: django django-forms django-views


    【解决方案1】:

    不,sendmail 中的字段对应于电子邮件标题中的数据。如果您想在电子邮件中添加更多联系数据,您应该将其呈现在正文中(例如作为免责声明)。你也可以查看这个帖子:add sender's name in the from field of the email in python

    【讨论】:

      猜你喜欢
      • 2014-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-10
      • 1970-01-01
      • 2021-01-11
      相关资源
      最近更新 更多