Django - Userena не отправляет электронную почту
Я установил приложение Userena и оно работает. Я могу зарегистрироваться, но письма не отправляются. Я перезаписываю форму регистрации, если это имеет значение. Я не получаю никаких сообщений об ошибках и вижу, что пользователи создаются в базе данных.
settings.py
EMAIL_BACKEND = 'django.core.mail.backends.dummy.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'email@gmail.com'
EMAIL_HOST_PASSWORD = 'password'
forms.py
from django.utils.translation import ugettext_lazy as _
from userena.forms import SignupForm
from models import UserProfile, RefUserAge, RefUserReference, RefUserSport, RefUserView
from django.contrib.auth.models import User
class SignupFormExtra(SignupForm):
age_pick = forms.ModelChoiceField(queryset = RefUserAge.objects.all())
ref_pick = forms.ModelChoiceField(queryset = RefUserReference.objects.all())
sport_pick = forms.ModelChoiceField(queryset = RefUserSport.objects.all())
view_pick = forms.ModelChoiceField(queryset = RefUserView.objects.all())
first_name = forms.CharField(label=_(u'First name'), max_length=30, required=False)
last_name = forms.CharField(label=_(u'Last name'), max_length=30, required=False)
def __init__(self, *args, **kw):
super(SignupFormExtra, self).__init__(*args, **kw)
def save(self):
new_user = super(SignupFormExtra, self).save()
new_user_profile = new_user.get_profile()
new_user_profile
new_user_profile.first_name = self.cleaned_data['first_name']
new_user_profile.last_name = self.cleaned_data['last_name']
new_user_profile.age_pick = self.cleaned_data['age_pick']
new_user_profile.ref_pick = self.cleaned_data['ref_pick']
new_user_profile.sport_pick = self.cleaned_data['sport_pick']
new_user_profile.view_pick = self.cleaned_data['view_pick']
new_user_profile.save()
return new_user
views.py
from django.http import HttpResponse, HttpResponseRedirect
from models import UserProfile
from django.shortcuts import render_to_response, RequestContext
from forms import SignupFormExtra
from userena import views as userena_views
def signup_view(request):
form = SignupFormExtra()
response = userena_views.signup(request, signup_form=SignupFormExtra)
return response
1 ответ
Решение
Письма не отправляются, потому что у вас есть настройки бэкэнда электронной почты в качестве фиктивного бэкенда
Как следует из названия, фиктивный сервер ничего не делает с вашими сообщениями
+ Изменить
django.core.mail.backends.dummy.EmailBackend
django.core.mail.backends.smtp.EmailBackend
Также убедитесь, что
EMAIL_HOST_USER = 'email@gmail.com'
EMAIL_HOST_PASSWORD = 'password'
учетные данные для действительного почтового ящика