Я пишу конечную точку в моем API, где пользователи могут сбросить свои пароли. Я использую библиотеку Python SMTP, чтобы отправить электронное письмо пользователю с кодом. Этот код представляет собой простую строку.
Я случайным образом генерирую эту строку и отправляю ее в качестве содержимого для электронного письма.
Однако, когда я отправляю запрос конечной точке, возникает ошибка:
AttributeError: У объекта 'NoneType' нет атрибута 'encode' .
Вот мой код конечной точки:
code = ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(8))
content = 'Subject: {}\n\n{}'.format('Your code to reset your password:', code)
mail = smtplib.SMTP('smtp.gmail.com', 587)
mail.ehlo()
mail.starttls()
mail.login(os.environ.get('email'), os.environ.get('password'))
mail.sendmail(os.environ.get('email'), user.email, content)
mail.close()
hashedReset = make_password(code)
user.resetCode = hashedReset
user.save()
return JsonResponse({'message': 'An email has successfully been sent to the email paired with this account.'}, status=200)
models.py:
from django.contrib.auth.models import AbstractUser
from django.db import models
class User(AbstractUser):
resetCode = models.TextField(blank=True)
def __str__(self):
return self.username
Когда я печатаю переменную code , отображается случайная строка, поэтомуне проблема.
Кто-нибудь знает, в чем проблема? Спасибо.