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

如何自定义dj-rest-auth注册后的邮箱验证邮件模板?

解决dj-rest-auth自定义邮箱验证邮件模板的问题

核心原理

dj-rest-auth依赖django-allauth处理邮件发送,其默认模板遵循Django的模板加载优先级——项目根目录下的同名模板会覆盖组件自带的模板。只需在项目中创建对应路径的自定义模板即可替换默认样式。

具体步骤

  1. 创建模板目录结构
    在你的Django项目根目录的templates文件夹下,创建与dj-rest-auth默认模板完全一致的路径:

    templates/
    └── dj_rest_auth/
        └── registration/
    
  2. 添加自定义模板文件
    在上述registration目录下创建两个模板文件(适配不同邮件客户端):

    • account_verification_email.html:HTML格式的邮件模板(用于支持HTML的客户端)
    • account_verification_email.txt:纯文本格式的邮件模板(用于不支持HTML的客户端)

    模板中可直接使用dj-rest-auth传递的上下文变量:

    • {{ activate_url }}:邮箱验证的完整链接
    • {{ user }}:当前注册用户对象(可调用{{ user.username }}、{{ user.email }}等属性)

    示例HTML模板:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>完成邮箱验证</title>
        <style>
            .mail-container {
                max-width: 640px;
                margin: 20px auto;
                padding: 30px;
                background: #ffffff;
                border-radius: 8px;
                box-shadow: 0 2px 10px rgba(0,0,0,0.1);
                font-family: 'Segoe UI', sans-serif;
            }
            .verify-btn {
                display: inline-block;
                padding: 12px 24px;
                margin: 20px 0;
                background: #2563eb;
                color: #fff;
                text-decoration: none;
                border-radius: 6px;
                font-size: 16px;
            }
        </style>
    </head>
    <body style="background: #f3f4f6;">
        <div class="mail-container">
            <h2>欢迎加入 {{ user.username }}!</h2>
            <p>为了完成注册,请点击下方按钮验证你的邮箱:</p>
            <a href="{{ activate_url }}" class="verify-btn">验证我的邮箱</a>
            <p>如果按钮无法点击,请复制以下链接到浏览器地址栏:</p>
            <p style="color: #6b7280; word-break: break-all;">{{ activate_url }}</p>
            <p>若你没有进行此操作,请忽略此邮件。</p>
        </div>
    </body>
    </html>
    

    示例纯文本模板:

    欢迎加入 {{ user.username }}!
    
    为了完成注册,请点击下方链接验证你的邮箱:
    {{ activate_url }}
    
    如果链接无法点击,请复制上面的地址到浏览器地址栏。
    
    若你没有进行此操作,请忽略此邮件。
    
  3. 确认Django模板配置
    确保项目settings.py中的TEMPLATES配置正确,保证Django能加载到自定义模板:

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [BASE_DIR / 'templates'],  # 确保包含项目templates目录
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]
    
  4. 自定义邮件主题(可选)
    若需要修改邮件主题前缀,可在settings.py中添加django-allauth的配置:

    ACCOUNT_EMAIL_SUBJECT_PREFIX = '[你的应用名称] '
    

内容的提问来源于stack exchange,提问作者joseph pazmiño

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 22:20:03