我目前正在使用Django向忘记密码的用户发送电子邮件。所有其他电子邮件客户端都会正确地呈现带有中断的电子邮件。然而,Gmail似乎并不关心html,它将所有文本压缩在一起。
以下是在hotmail中呈现电子邮件时的外观:
你好,鲍勃,
您收到此电子邮件是因为您(或有人冒充您)请求为您的帐户发送新密码。如果您没有请求此电子邮件,那么您可以通过support@mailapp.com.
要重置密码,请在下面输入临时密码以登录。
临时密码:seBDTZK4cc
登录后,您可以在"设置"中"帐户"下的"编辑配置文件"选项中更改密码。
-邮件应用程序团队
然而在gmail中,它看起来是这样的!:
你好,鲍勃,你收到这封电子邮件是因为你(或有人假装你)请求为你的帐户发送新密码。如果您没有请求此电子邮件,那么您可以通过support@mailapp.com.To重置您的密码,在下面输入临时密码即可登录。临时密码:seBDTZK4cc登录后,您可以在"设置"中"帐户"下的"编辑配置文件"选项中更改密码-邮件应用程序团队
这让拥有gmail帐户的用户感到困惑,因为临时密码正与下一句话组合在一起!
这是我用来发送电子邮件的Django代码:
def resetpassword(request):
data = json.loads(request.raw_post_data)
requestusername = data['username']
requestemail = data['email']
if User.objects.filter(username = requestusername).exists():
user_who_forgot_password = User.objects.get(username = requestusername)
if user_who_forgot_password.email == requestemail:
password = User.objects.make_random_password()
user_who_forgot_password.set_password(password)
user_who_forgot_password.save()
email = EmailMessage('Password Reset On Mail App', 'Hello %s,</br></br>You are receiving this email because you have (or someone pretending to be you has) requested a new password to be sent for your account. If you did not request this email then you can let us know at support@mailapp.com.</br></br>To reset your password, enter the temporary password below to login.</br></br><b>TEMPORARY PASSWORD:</b> %s</br></br>Once you are logged in, you can change your password in the "Edit Profile" option under "Account" in Settings.</br></br>-The MailApp Team' % (user_who_forgot_password.username, password), to = ['{email}'.format(email=requestemail,)])
email.content_subtype = "html"
email.send()
print 'Password Email Sent'
return HttpResponse("Success")
else:
return HttpResponse("No email found")
else:
return HttpResponse("No username found")
我该如何修复它,以便它可以在Gmail中以像Hotmail一样正确显示的方式呈现?
</br>
是无效的HTML。
您应该编写<br>
(不带结束标记)或XML样式的<br />
(自结束标记)