0

我的表单从我的 settings.py 中列出的帐户发送电子邮件很好,但在消息中我只得到表单的主题部分和消息部分。电子邮件中没有发件人部分,所以我不知道谁会发送电子邮件。有谁知道如何解决这一问题?

我的表格.py

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

My 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'
4

2 回答 2

0

该代码应该可以正常工作。我在下面实现了同样的事情并且它有效,但是我遇到了一个你可能遇到的 gmail 问题。

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

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

希望有帮助。

于 2012-11-28T06:19:54.057 回答
0

您将不得不使用 EMAIL_HOST_USER 作为发件人,因为您要从该用户帐户发送邮件。请在您的views.py 中导入您的设置,如下所述。

import settings

send_mail(subject, message, settings.EMAIL_HOST_USER, recipients)
于 2012-11-28T06:34:40.133 回答