Django联系表单邮件错误

时间:2012-11-28 04:14:27

标签: django forms email

我的表单从我的settings.py中列出的帐户发送电子邮件,但在邮件中我只收到表单的主题部分和邮件部分。电子邮件中没有发件人部分,因此我无法分辨谁将发送电子邮件。有谁知道如何解决这个问题?

我的forms.py

class ContactForm(forms.Form):
    subject = forms.CharField(max_length=50)
    message = forms.CharField()
    sender = forms.EmailField()

我的Views.py联系功能

def contact(request):
if request.method == 'POST':
    form = ContactForm(request.POST)
    if form.is_valid():
        subject = form.cleaned_data['subject']
        message = form.cleaned_data['message']
        sender = form.cleaned_data['sender']
        recipients = ['otheremail@gmail.com']
        send_mail(subject, message, sender, recipients)
        return HttpResponseRedirect('/thanks/')

else:
    form = ContactForm()
return render(request, "contact.html", {'form':form,})

我的设置.py

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'myemail@gmail.com'
EMAIL_HOST_PASSWORD = 'mypassword'

2 个答案:

答案 0 :(得分:0)

该代码应该可以正常工作。我已经在下面实现了相同的功能,但是它有效,但我可能遇到了一个gmail问题。

send_mail(Subject, Message, 'myemail@example.ca', To)

问题在于,为了让发件人成为我在设置中使用Gmail时分配的发件人 - “发件人”必须位于您的Gmail帐户设置中的已批准发件人列表中。

希望有所帮助。

答案 1 :(得分:0)

您必须使用EMAIL_HOST_USER作为发件人,因为您要从此用户帐户发送邮件。 请按照以下说明在views.py中导入您的设置。

import settings

send_mail(subject, message, settings.EMAIL_HOST_USER, recipients)