Django send_mail函数中的email_from不起作用

时间:2011-07-23 20:10:50

标签: django

我在我的网站上放了一个联系表单,我在settings.py

中有这个
# Email settings
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'myemail@gmail.com'
EMAIL_HOST_PASSWORD = '****'
EMAIL_PORT = 587

这在我的views.py

name = form.cleaned_data['name']
email = form.cleaned_data['email']
message = form.cleaned_data['message']
subject = 'Email from ' + name
content = name + '\r\n' + email + '\r\n\r\n' + message

send_mail(subject, content, email, ['me@myemail.com'])

一切正常,我收到包含所有信息的电子邮件,但是,即使from_email参数的myemail@gmail.com var包含发件人电子邮件,该电子邮件也来自email

它不起作用或我做错了什么?

我想收到来自发件人的电子邮件,所以您可以回复它,就像我在PHP中一样。

谢谢。

1 个答案:

答案 0 :(得分:8)

Gmail不会让您欺骗电子邮件的来源。

每位用户iAn similar post

  

简短的回答 - 你不能。

     

Google会将您通过其SMTP服务发送的邮件中的“发件人”和“回复”标题重写为与您的Gmail帐户相关的值。

     

gmail的SMTP功能不是开放或中继服务。如果它允许From标头的任何值,它将大大淡化Google在垃圾邮件服务方面的地位,因为无法验证发件人的凭据。

     

您需要考虑替代方案。你计划在完成后如何托管你的脚本/应用程序/网站:几乎每个托管解决方案(共享/ vps /专用服务器)都将预先配置一个电子邮件传输解决方案:无论是sendmail还是postfix on * nix,还是IIS在Windows上。

     

如果您打算使用gmail,那么您可以:

     

设置专用的“myapp@gmail.com”帐户   如果您拥有您应该发送的域名,请使用域名的免费Gmail,并设置“myapp@mydomain.com”帐户。