我尝试在Django中发送确认电子邮件,但是excape字符存在问题。
我有一个帮助邮件内容的函数
def getActivationMailBody():
email_body = "<table width='100%'>
email_body = email_body + '<p>' + '%(confirmLink)s' + '</p>'
return email_body
确认网址就像
一样嵌入email_body = getActivationMailBody()
email_body = email_body % {'confirmLink': '%s/kullanici/onay/%s/%s'%(WEB_URL,md5.new(form.cleaned_data['email']).hexdigest()[:30], activation_key)}
msg = EmailMessage(email_subject, email_body, DEFAULT_FROM_EMAIL, [email_to])
msg.content_subtype="html"
res = msg.send(fail_silently=False)
但是,confirmLink
嵌入时出现错误
unsupported format character ''' (0x27) at index 18
我发现问题是由%
字符引起的,但我无法弄清楚如何纠正这个问题。
答案 0 :(得分:3)
在格式字符串中,%可以通过加倍来转义:
email_body = "<table width='100%%'>"
你构建这个有点奇怪,因为getActivationEmailBody没有返回电子邮件的正文,而是返回一个格式字符串来创建正文。您可能想要重命名该功能。