我在我的项目中有几个实例,尝试在Django视图中发送电子邮件。
我想能够在视图中硬编码电子邮件发送者。但是,当我尝试这样做时,它仍然从设置文件中指定的默认帐户发送电子邮件。
以下是一个示例:
if testform.is_valid():
beta=testform.save()
subject="Hi Beta Tester"
sender="correct@email.com"
recipient=[testform.cleaned_data['email']]
text=loader.get_template('registration/beta_email.txt')
html=loader.get_template('registration/beta_email.html')
site_name='mysite'
d=Context({'site_name':site_name})
text_content=text.render(d)
html_content=html.render(d)
#This sends two mail versions, plain text and html
msg=EmailMultiAlternatives(subject, text_content, sender, recipient)
msg.attach_alternative(html_content, "text/html")
msg.send()
return HttpResponseRedirect('/splash/')
我以为可以在这里显式指定发件人参数。但是,当我测试它时,电子邮件仍然从我的设置文件中列出的地址发送,如下所配置:
EMAIL_USE_TLS=True
EMAIL_HOST='smtp.gmail.com'
EMAIL_HOST_USER='wrong@email.com'
EMAIL_HOST_PASSWORD='private'
DEFAULT_FROM_EMAIL='wrong@email.com'
我只需要删除DEFAULT_FROM_EMAIL常量就可以使它工作吗?我尝试这样做,它似乎正在工作,但我很困惑。在Django文档中,建议在视图中设置sender应该覆盖DEFAULT。