gpt4 book ai didi

python - Django 邮箱

转载 作者:太空狗 更新时间:2023-10-29 17:41:03 29 4
gpt4 key购买 nike

我正在使用 Gmail SMTP 服务器发送来 self 网站用户的电子邮件。

这些是我的 settings.py 中的默认设置

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'example@example.com'
EMAIL_HOST_PASSWORD = 'pwd'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
SERVER_EMAIL = EMAIL_HOST_USER
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

如果我希望用户发送电子邮件,我将覆盖这些设置并使用 Django 的电子邮件发送方法发送电子邮件。当系统发生异常时,我会收到一封来自example@example.com的邮件。有时我会收到一些登录用户的电子邮件。这也可能意味着当用户收到从我的网站发送的电子邮件时,它的发送地址与实际用户不同。

应该怎样做才能避免这种情况?

最佳答案

当任何邮件发送函数传递None 或空字符串作为发件人地址 时,Django 仅使用settings.DEFAULT_FROM_EMAIL。这可以在 django/core/mail.py 中验证。

当出现未处理的异常时,Django 调用 django/core/mail.py 中的 mail_admins() 函数,该函数始终使用 settings.SERVER_EMAIL 并且发送到settings.ADMINS 中列出的地址。这也可以在 django/core/mail.py 中验证。

Django 本身发送电子邮件的唯一其他地方是如果 settings.SEND_BROKEN_LINK_EMAILS 为 True,则 CommonMiddleware 将向 settings.MANAGERS 中列出的所有地址发送邮件,并且电子邮件发件人是 settings.SERVER_EMAIL

因此,只有当您调用 send_mail() 时,普通用户才会从您的站点收到电子邮件。因此,始终将真实地址作为 from_mail 参数传递,这样您就可以避免用户收到来自 settings.SERVER_EMAILsettings.DEFAULT_FROM_EMAIL 的电子邮件。 p>

旁注:django-registration 至少是一个 Django 可插入的示例,它将从 settings.DEFAULT_FROM_EMAIL 发送邮件,因此在这种情况下,您需要确保它是一个正确的电子邮件地址,例如 support@yoursite.com 或 webmaster@yoursite.com。

关于python - Django 邮箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/607819/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com