You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django密码重置邮件域名与站点名称显示错误如何解决?

解决Django密码重置邮件的站点名称与域名问题

这个问题其实是Django默认的站点配置没跟上生产环境导致的,我帮你分步骤解决:

1. 核心:配置Django Sites框架(解决主题和链接的根源)

Django的django.contrib.sites模块负责管理站点的名称和域名,密码重置邮件默认会使用这个模块的配置。

  • 第一步:确认Sites模块已启用
    打开你的settings.py,检查INSTALLED_APPS里包含'django.contrib.sites',同时添加或确保存在以下设置:

    SITE_ID = 1
    
  • 第二步:更新站点的名称和域名
    有两种方式修改默认站点的信息:

    • 方式一:通过Django Admin后台
      登录你的Django Admin界面,找到「Sites」选项(通常在页面底部),点击进入后修改默认站点的:

      • Domain name:填写你的Linode服务器的实际域名(比如your-domain.com)
      • Display name:填写你想要在邮件主题里显示的站点名称(比如「我的Django应用」)
        保存后,新的密码重置邮件主题就会变成「Password reset on 你的站点名称」。
    • 方式二:通过Django Shell
      如果没启用Admin后台,可以在服务器上运行以下命令:

      python manage.py shell
      

      然后在shell里执行:

      from django.contrib.sites.models import Site
      site = Site.objects.get(id=1)
      site.domain = "your-domain.com"  # 替换成你的实际域名
      site.name = "Your Site Name"     # 替换成你的站点名称
      site.save()
      

2. 确保生产环境的请求上下文正确(避免链接用127.0.0.1)

如果你的Linode服务器使用了反向代理(比如Nginx),需要让Django识别外部请求的真实域名和协议:

在settings.py里添加以下配置:

# 让Django识别反向代理传递的主机头
USE_X_FORWARDED_HOST = True
# 如果你的站点用HTTPS,添加这个来识别正确的协议
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

同时确认ALLOWED_HOSTS包含你的域名:

ALLOWED_HOSTS = ['your-domain.com', 'www.your-domain.com']

3. 可选:自定义密码重置邮件内容

如果想进一步修改邮件的文本内容,可以自定义邮件模板:
在你的Django应用下创建templates/registration/password_reset_email.html(或.txt纯文本版本),然后编写自定义内容。模板里可以使用以下变量:

  • {{ site_name }}:你设置的站点名称
  • {{ domain }}:你设置的站点域名
  • {{ uid }}、{{ token }}:密码重置所需的验证参数

比如自定义的纯文本模板示例:

Hello {{ user.username }},

You received this email because a request was made to reset your password for {{ site_name }}.

If you requested this, click the link below to set a new password:
https://{{ domain }}/reset/{{ uid }}/{{ token }}/

If you didn't make this request, you can ignore this email.

Thank you,
The {{ site_name }} Team

内容的提问来源于stack exchange,提问作者Username

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:14:05