我想做的是覆盖templates/account/email/email_confirmation_message.txt
中的确认电子邮件URL。
我要更改此部分
To confirm this is correct, go to {{ activate_url }}
类似
http://localhost:8080/confirm_email/{{ key }}
但是,我不知道{{ activate_url }}
的来源。
我想将key
发送到rest-auth
建立的端点。
如何重写电子邮件中的URL链接?还是如果过于复杂,在前端验证电子邮件的简单方法是什么?
答案 0 :(得分:3)
使用包含user
,current_site
,activate_url
和key
的上下文渲染模板(请参见 allauth / account中的send_confirmation_mail()
方法) /adapter.py)。
因此,您可以覆盖模板并使用key
(可能还使用current_site
来创建绝对URI)在模板中创建URL。
答案 1 :(得分:0)
要解决此问题,您可能只需要重写send_email函数即可。
from allauth.account.adapter import DefaultAccountAdapter
from django.conf import settings
class CustomAllauthAdapter(DefaultAccountAdapter):
def send_mail(self, template_prefix, email, context):
account_confirm_email = '/api/v1/auth/register/account-confirm-email/'
context['activate_url'] = (
settings.BASE_URL + account_confirm_email + context['key']
)
msg = self.render_mail(template_prefix, email, context)
msg.send()