我有一个发送代码:
def send_email(site_id, email):
subject = "Sub"
from_email, to = EMAIL_FROM, email
text_content = 'Text'
html_content = render_to_string(
'app/includes/email.html',
{'pk': site_id}
)
msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
msg.attach_alternative(html_content, "text/html")
msg.send()
在我的模板中
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>title</title>
</head>
<body>
<a href="{% url 'mail_view' pk %}">Click</a>
</body>
</html>
但这段代码生成的链接如下:http://mail.google.com/en-us/results/30/ http://mail.google.com/en-us/results/30/
结果/30 还好,
但我得到了 mail.google.com 而不是“mysite.com”
在我的网站中没有 /en-us/ 它唯一的 /en/
你们有什么想法吗?
我怀疑您的电子邮件模板中的链接中缺少绝对网址。当您发送电子邮件时,django 使用相对 url“/results/30/”填充 url,并且也许您的 gmail 邮件客户端正在使用它自己的域和语言前缀路径填充 url。
你可以尝试这样的事情:
<a href="https://yoursite.com{% url 'mail_view' pk %}">Click</a>
或者,为了避免在模板中对域进行硬编码,您可以使用下面建议的技术之一,使用 django 站点框架或类似框架:
如何在 Django 模板中获取我的网站的域名? https://stackoverflow.com/questions/1451138/how-can-i-get-the-domain-name-of-my-site-within-a-django-template
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)