python Django电子邮件设置正确的发件人gunicorn

2024-06-12 20:41:43 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的设置.py公司名称:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com' # mail service smtp
EMAIL_HOST_USER = 'xx@xx.com' # email id
EMAIL_HOST_PASSWORD = 'sdjlfkjdskjfdsjkjfkds' #password
EMAIL_PORT = 587
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'xx@xx.com'

我正在发送密码重置电子邮件 它在本地主机上运行得很好,但在生产服务器上作为发送者使用站长@localhost在

我该怎么办?在

这是我的网址.py在

^{pr2}$

Tags: djangopycore名称combackendhostemail
1条回答
网友
1楼 · 发布于 2024-06-12 20:41:43

首先,我想解释一下为什么你会站长@localhost电子邮件。在

解释

在django.contrib.auth公司.forms.PasswordResetForm.save()函数使用None作为发件人电子邮件地址,站长@localhost默认情况下使用的是,因此您只需在设置.py. 在

解决方案

{cdango>与你的环境连接。在

现在运行以下命令。在

# Check your enviroment, should say something like production.
import os
os.environ.get('DJANGO_SETTINGS_MODULE')

# Check if the DEFAULT_FROM_EMAIL property is set.
from django.conf import settings
settings.DEFAULT_FROM_EMAIL

使用os.environ.get('DJANGO_SETTINGS_MODULE')您将获得用于生产的设置文件,因此如果没有设置settings.DEFAULT_FROM_EMAIL,请编辑该文件并将其与电子邮件一起添加。在

建议

使用另一个电子邮件后端(mandrill、sendgrid等)确保您的邮件将到达收件箱,而不是垃圾邮件文件夹。在

为此,您可以使用django-anymail包。在

参考文献

How to create a password reset view in Django - simpleisbetterthancomplex.com

相关问题 更多 >