I've installed the Userena app and have it running. I can register but no emails are being sent out. I'm overriding the signup form if that makes a difference. I'm not getting any error messages and I can see the users are being created in the database.

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
有帮助吗?

解决方案

Emails are not being sent out because you have your email backend settings as Dummy backend

As the name suggests the dummy backend does nothing with your messages

Change

django.core.mail.backends.dummy.EmailBackend

To SMTP backend

django.core.mail.backends.smtp.EmailBackend

Also, make sure

EMAIL_HOST_USER = 'email@gmail.com'
EMAIL_HOST_PASSWORD = 'password'

are the credentials for a valid inbox

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top