В настоящее время я использую Django для отправки электронного письма пользователю, который забыл свой пароль. Все остальные почтовые клиенты правильно обрабатывают письмо с перерывами. Однако Gmail, похоже, не заботится о html и сжимает весь текст вместе.
Вот как выглядит письмо при отображении в Hotmail:
Привет Боб,
Вы получили это электронное письмо, потому что вы (или кто-то выдавал себя за вас) запросили новый пароль для вашей учетной записи. Если вы не запрашивали это письмо, вы можете сообщить нам об этом по адресу [email protected].
Чтобы сбросить пароль, введите ниже временный пароль для входа.
ВРЕМЕННЫЙ ПАРОЛЬ: seBDTZK4cc
После того, как вы вошли в систему, вы можете изменить свой пароль в опции «Редактировать профиль» в разделе «Учетная запись» в Настройках.
-Команда почтового приложения
Однако в Gmail это выглядит так!
Здравствуйте, Боб! Вы получили это письмо, потому что вы (или кто-то выдавал себя за вас) запросили новый пароль для вашей учетной записи. Если вы не запрашивали это письмо, вы можете сообщить нам об этом по адресу [email protected]. Чтобы сбросить пароль, введите ниже временный пароль для входа в систему. ВРЕМЕННЫЙ ПАРОЛЬ: 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 [email protected].</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?