我的表单从我的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'
答案 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)