gpt4 book ai didi

django - 如何使用 Sendgrid 从 Heroku 中部署的 Django 应用程序发送重置密码电子邮件?

转载 作者:行者123 更新时间:2023-12-02 02:49:47 29 4
gpt4 key购买 nike

我一直在努力尝试正确设置 settings.py 以发送密码重置电子邮件。这是我当前的配置:

SENDGRID_API_KEY = os.environ["SENDGRID_API_KEY"]
SENDGRID_PASSWORD= os.environ["SENDGRID_PASSWORD"]
SENDGRID_USERNAME= os.environ["SENDGRID_USERNAME"]

EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = os.environ['SENDGRID_USERNAME']
#EMAIL_HOST_USER = 'apikey'
EMAIL_HOST_PASSWORD = os.environ["SENDGRID_PASSWORD"]
EMAIL_PORT = 587
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = os.environ["DEFAULT_FROM_EMAIL"]

#SENDGRID_SANDBOX_MODE_IN_DEBUG = False
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

我遇到过以下与我的问题相关的帖子,但没有一个起作用:

  1. Sending SMTP email with Django and Sendgrid on Heroku
  2. No module named 'sendgrid_backend' in django
  3. Send email with Sendgrid in Django
  4. Setting up email with Sendgrid in Heroku for a Django App
  5. Heroku, Django, and Sendgrid - emails not sending?

当我使用 EMAIL_BACKEND = "sendgrid_backend.SendgridBackend"(在安装 django-sendgrid-v5 库之后)时,我没有收到任何错误,但我没有没有收到任何电子邮件:'(并且在之前的情况下,我遇到了以下错误 SMTPServerDisconnected at/password-reset/连接意外关闭。任何帮助、建议、评论,我真的很感激这个疯狂的想法,因为我在这个问题上花了几个小时,这将是我项目中的一个里程碑。

谢谢大家:)

最佳答案

我在 Google Cloud App Engine 上部署 Django 应用时遇到了类似的问题。以下配置(在 settings.py 中)对我有用:

SENDGRID_API_KEY = os.getenv('SENDGRID_API_KEY') 

EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = 'apikey' # Exactly that.
EMAIL_HOST_PASSWORD = SENDGRID_API_KEY
EMAIL_PORT = 587 # 25 or 587 (for unencrypted/TLS connections).
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = os.getenv('DEFAULT_FROM_EMAIL')

对于 SENDGRID_API_KEY,请使用“电子邮件 API/集成指南”部分中创建的 API key 。根据您的情况,选择 SMTP 中继选项。

对于 DEFAULT_FROM_EMAIL,请使用经过验证的单一发件人电子邮件地址。您可以在“设置/发件人身份验证”中找到它。这是您在创建发件人时输入的“发件人电子邮件地址”的内容。更多详情here .

我不推荐 Robert D 的答案,因为使用 ALLOWED_HOSTS = ['*'] 您将容易受到 HTTP 主机 header 攻击。来自文档:

'*' 的值将匹配任何内容;在这种情况下,您有责任提供自己的主机 header 验证(可能在中间件中;如果是这样,则必须首先列出该中间件在中间件中)。”

更多详情here .

关于django - 如何使用 Sendgrid 从 Heroku 中部署的 Django 应用程序发送重置密码电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62186965/

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