gpt4 book ai didi

django - 如何覆盖 django 电子邮件中的发件人地址(通过 Gmail 发送)

转载 作者:行者123 更新时间:2023-12-03 16:56:29 48 4
gpt4 key购买 nike

在我的 settings.py 中,我有以下值:

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'user@gmail.com'
EMAIL_HOST_PASSWORD = 'pass'
EMAIL_USE_TLS = True

然后在我看来,我从我的模型中获得了一个电子邮件地址,例如:
#models.py
class Profile(models.Model):
name = models.CharField(...)
email_address = models.EmailField()

假设 email_addressProfile型号为 sample@gmail.com
#views
def send_email(request,profile_id):
profile = Profile.objects.get(pk=profile_id)
email = profile.email_address

所以当我发送邮件时,
send_mail('subject', 'content', email, ['example1@example.com'])

当电子邮件已经发送时,sender_email 仍然是 user@gmail.com。有人可以教我如何覆盖此电子邮件地址吗?谢谢。

最佳答案

DEFAULT_FROM_EMAIL 设置就是这样,默认。 Django 在自动发送电子邮件的地方使用它(例如向 ADMINS 报告错误)。当您调用send_mail直接方法,您必须提供 from_email范围。即使您想要 DEFAULT_FROM_EMAIL ,您必须从 django.conf.settings 导入它然后传入。

我最好的猜测是 Gmail 实际上是这里的罪魁祸首。据我所知,Gmail 不允许您指定自定义发件人,因为已经有太多人尝试使用 Gmail 发送垃圾邮件,并且他们希望阻止这种做法。

基本上,当您的电子邮件通过 Gmail 外发邮件服务器时,它会忽略您发送的自定义 header 并从您的实际 Gmail 帐户用户发送。您可以通过在 Gmail 的设置中添加要用作有效发件人的电子邮件自定义来解决此问题。转到设置,然后转到“帐户和导入”选项卡。找到标题为“发送邮件”的部分,然后单击“添加您拥有的另一个电子邮件地址”链接。您可以添加一个要从那里发送的新电子邮件帐户,它会让您通过电子邮件确认地址(因此它需要是可以接收电子邮件的有效地址)。

关于django - 如何覆盖 django 电子邮件中的发件人地址(通过 Gmail 发送),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8418905/

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