Django sendet keine E-Mails mit dem SMTP-Server von mail.ruPython

Python-Programme
Anonymous
 Django sendet keine E-Mails mit dem SMTP-Server von mail.ru

Post by Anonymous »

Ich habe ein Problem beim Versenden von E-Mails über Django. Ich denke, dass meine Einstellungen, Ansichten und mein Modell korrekt sind, aber trotzdem werden keine E-Mails gesendet. Es gibt kein Problem, wenn ich das auf der Konsole versuche
Django-Version == 4.2.1
Python-Version == 3.10
settings.py:

Code: Select all

`EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST = 'smtp.mail.ru'
EMAIL_PORT = 465
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = '*****'
EMAIL_USE_SSL = True`
models.py:

Code: Select all

`class EmailVerification(models.Model):
code = models.UUIDField(unique=True)
user = models.ForeignKey(to=User, on_delete=models.CASCADE)
created = models.DateTimeField(auto_now_add=True)
expiration = models.DateTimeField()

def __str__(self):
return f'Email verification for user {self.user.email}'

def send_verification_email(self):
link = reverse('users:email_verification', kwargs={'email': self.user.email, 'code': self.code})
verification_link = f'{settings.DOMAIN_NAME}{link}'
subject = f'Verification for {self.user.username}'
message = f'Click to the link to verify your account {self.user.email} {verification_link} '
send_mail(
subject=subject,
message=message,
from_email=settings.EMAIL_HOST_USER,
recipient_list=[self.user.email],
fail_silently=False
)

def is_expired(self):
return True if now() >= self.expiration else False`
views.py:

Code: Select all

`class EmailVerificationView(TemplateView):

template_name = 'users/email_verification.html'

def get(self, request, *args, **kwargs):
code = kwargs['code']
user = User.objects.get(email=kwargs['email'])
email_verifications = EmailVerification.objects.filter(user=user, code=code)

if email_verifications.exists() and not email_verifications.first().is_expired():
user.is_verified_email = True
user.save()
return super(EmailVerificationView, self).get(request, *args, **kwargs)
else:
return HttpResponseRedirect(reverse('index'))`
forms.py:

Code: Select all

`    def save(self, commit=True):
user = super(UserRegistrationForm, self).save(commit=True)
expiration = now() + timedelta(hours=48)
record = EmailVerification.objects.create(code=uuid.uuid4(), user=user, expiration=expiration)`

Was könnte der Kern dieses Problems sein? Gibt es eine Lösung dafür? Danke

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post