【问题标题】:Sending Emails in Production Environment在生产环境中发送电子邮件
【发布时间】:2020-09-01 13:01:25
【问题描述】:

我有一个使用 nginx 和 gunicorn 在 Digital Ocean 上托管的网络应用程序。我最近尝试为我的用户添加密码重置功能以及联系表格。当我在本地机器上运行和测试时,一切正常,但现在我已经转移到生产环境中,当我尝试发送密码重置电子邮件时收到 500 错误,并且我的联系表没有生成任何电子邮件。

是否需要进行一些与数字海洋或 nginx 相关的额外设置以允许发送电子邮件?

我的 settings.py 设置如下:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'mail.privateemail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'admin@programaticlearning.com'
EMAIL_HOST_PASSWORD = 'CorrectPassword'

DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

【问题讨论】:

  • 你得到的 500 是赠品,有问题。你有任何相关的日志吗?可以在这里添加吗?如果没有,最简单的方法(但不是推荐的方法)是启用 settings.DEBUG 片刻,再次触发错误并检查 Django 调试页面上的回溯。
  • 所以当我改变 DEBUG = True 它开始工作。因此,由于打开了 DEBUG,因此正在发生任何事情。而且我检查了日志,那里没有任何帮助
  • 这是唯一不起作用的吗?我曾经遇到过切换DEBUG的问题,问题是我的值错误settings.ALLOWED_HOSTS
  • 嗯,也许是允许主机....这似乎是之前出现的问题:stackoverflow.com/questions/47093584/…
  • 好的,如果没有回溯就很难判断。设置某种日志记录以获取回溯。手动写入日志文件或类似Sentry

标签: django nginx digital-ocean email


【解决方案1】:

我发现了问题:

我需要使用正确的域创建站点,以便 Django 的身份验证视图正常工作。我在生产中使用了不同的数据库,但尚未在 Site 表中创建正确的域。

【讨论】:

    猜你喜欢
    • 2023-04-02
    • 2021-03-21
    • 2016-03-20
    • 2012-05-04
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多