Когда пользователь регистрируется, is_active по умолчанию имеет значение False. Я хочу, чтобы пользователь получил уведомление по электронной почте, когда администратор активирует пользователя. Но send_mail не отправляет электронную почту.
Я создал функцию в моем views.py:
def send_mail(request):
if user.is_active == True:
send_mail(request, subject='subject',
message='message',
from_email='hekevintran_test@webfaction.com',
recipient_list=['recipient@yahoo.com'],
fail_silently=False)
Кроме того, я записал эти вещи в моих настройках.
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'ualmaz'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 25
EMAIL_USE_TLS = False
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_FILE_PATH = os.path.join(BASE_DIR, 'apps', 'emails')
Вот мои взгляды.py:
from django.shortcuts import render, redirect
from django.contrib import messages
from django.core.mail import send_mail
from django.urls import reverse_lazy
from django.contrib.auth.decorators import login_required
from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin
from django.views.generic import CreateView, DetailView, ListView, UpdateView, DeleteView
from .forms import UserCreationModelForm, UserUpdateForm, ProfileUpdateForm
from .models import User, Post, Profile
class UserRegistrationView(CreateView):
form_class = UserCreationModelForm
user = User
success_url = reverse_lazy('login')
template_name = 'users/registration.html'
def send_mail(request):
user = User
if user.is_active == True:
send_mail(request, subject='subject',
message='message',
from_email='hekevintran_test@webfaction.com',
recipient_list=['recipient@yahoo.com'],
fail_silently=False)
Вот моя модель пользователя в models.py:
.
class User(AbstractUser):
first_name = models.CharField(verbose_name="First name", max_length=255)
last_name = models.CharField(verbose_name="Last name", max_length=255)
country = models.CharField(verbose_name="Country name", max_length=255)
city = models.CharField(verbose_name="City name", max_length=255)
email = models.EmailField(verbose_name="Email", max_length=255)
access_challenge = models.BooleanField(default=False)
is_active = models.BooleanField(default=False)
def __str__(self):
return self.username
Есть идеи?