【问题标题】:The email_from in Django send_mail function not working [duplicate]Django send_mail 函数中的 email_from 不起作用[重复]
【发布时间】:2011-10-11 19:02:34
【问题描述】:

我在我的网站中放了一个联系表格,我的 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

这在我看来.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'])

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

这样不行还是我做错了什么?

我想从发件人那里得到电子邮件,所以你可以回复它,就像我在 PHP 中所做的那样。

谢谢。

【问题讨论】:

    标签: django


    【解决方案1】:

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

    similar post中的每个用户 iAn

    简短的回答 - 你不能。

    Google 会将您通过其 SMTP 服务发送的邮件中的 From 和 Reply-To 标头重写为与您的 gmail 帐户相关的值。

    gmail 的 SMTP 功能并非旨在成为开放或中继服务。如果它允许 From 标头使用任何值,则会大大削弱 Google 在垃圾邮件服务中的地位,因为无法验证发件人的凭据。

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

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

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

    【讨论】:

    • 那么唯一的方法是使用不同的服务器来发送电子邮件还是就这样保留它?
    • 是的,由于 iAn 帖子中所述的原因,Google 的服务器不会让您随意设置电子邮件来源的内容。
    • 我像 send_mail(subject+" - "+from_email, message, from_email, ['user@test.com']) 这样编辑了我的视图,以便接收发件人电子邮件作为主题的一部分
    猜你喜欢
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    • 2015-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多