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

如何在Django+React项目中自定义Djoser发送的邮件内容

自定义Djoser Gmail邮件内容的修改方案

1. 先配置Django基础发件参数

要正常发送Gmail邮件,首先需要在Django项目的settings.py中配置基础SMTP参数,注意当前Gmail不支持直接使用账号密码登录,需要先开启账号两步验证后生成应用专用密码使用:

# settings.py 基础邮件配置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = '你的Gmail完整地址'
EMAIL_HOST_PASSWORD = '你生成的Gmail应用专用密码'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

2. 自定义Djoser邮件内容

有两种常用修改方式,可按需选择:

方式一:仅修改邮件内容文本,覆写Djoser模板

适合只需要调整邮件正文内容的场景:

  • 先在Django项目根目录新建templates/email/目录,如果是首次使用templates目录,需要在settings.py的TEMPLATES配置中指定模板路径:
    TEMPLATES = [
        {
            # 其余原有配置保持不变
            'DIRS': [BASE_DIR / 'templates'],
        }
    ]
    
  • Djoser默认的所有邮件模板都可以放在上述目录中覆写,常用邮件对应的模板文件名如下,分别对应HTML格式和纯文本格式邮件:
    • 账号激活邮件:activation.html、activation.txt
    • 密码重置邮件:password_reset.html、password_reset.txt
    • 注册确认邮件:confirmation.html、confirmation.txt
  • 模板中支持使用Django模板语法调用参数,比如{{ user.username }}对应用户名、{{ url }}对应官方默认生成的验证跳转链接。

方式二:自定义邮件标题、逻辑,重写Djoser邮件类

如果需要修改邮件标题、新增自定义参数传递、调整发送逻辑,选择这种方式:

  • 在你使用的Django app目录下新建emails.py,继承Djoser对应邮件类修改属性和方法,示例如下:
    # 你的app名/emails.py
    from djoser import email
    
    # 自定义激活邮件
    class CustomActivationEmail(email.ActivationEmail):
        # 自定义邮件标题
        subject = "欢迎注册我们的平台,请激活你的账号"
        
        # 重写方法新增自定义模板参数
        def get_context_data(self):
            context = super().get_context_data()
            # 可添加任意自定义参数传递到模板
            context["custom_tip"] = "这是自定义的提示内容"
            return context
    
    # 其余要自定义的邮件(比如密码重置邮件)也可以按同样方式继承重写
    class CustomPasswordResetEmail(email.PasswordResetEmail):
        subject = "你的账号密码重置申请"
    
  • 在settings.py的DJOSER配置块中注册你自定义的邮件类,覆盖默认配置:
    # settings.py Djoser配置
    DJOSER = {
        # 你原有已配置的Djoser参数保持不变
        'EMAIL': {
            'activation': '你的app名.emails.CustomActivationEmail',
            'password_reset': '你的app名.emails.CustomPasswordResetEmail',
            # 其余需要自定义的邮件都可以在这里对应配置
        }
    }
    

提示:配置修改完成后需要重启Django服务生效,测试时如果发送失败优先检查Gmail应用专用密码是否配置正确,是否有SMTP端口访问限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:54:06