2010-05-24 10 views
8

Tengo curiosidad por saber si hay una forma de enviar un correo electrónico activado con nombre de usuario, contraseña usando django-registration. Primero pensé en modificar el formulario de registro, pero necesito un ejemplo.envíe active-email con django-registration

+0

NO envíe contraseñas de usuario por correo electrónico. –

Respuesta

11

django-registration utiliza el código siguiente, a nivel interno, para manejar el envío de mensajes de correo electrónico:

send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [self.user.email]) 

Si se desea trabajar, se tendrá que especificar el valor en su DEFAULT_FROM_EMAIL settings.py.

Además, tenga en cuenta lo siguiente:

El correo se envía utilizando el host SMTP y puerto especificado en la configuración de EMAIL_PORT EMAIL_HOST y. Los ajustes EMAIL_HOST_USER y EMAIL_HOST_PASSWORD, si se establece, se utilizan para autenticar al servidor SMTP , y los EMAIL_USE_TLS establecer controla si se utiliza una conexión segura .

Así, por poner un ejemplo, esto es lo que he usado en un archivo settings.py utilizar una cuenta de Gmail:

EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_PORT = 465 
EMAIL_USE_TLS = True 

EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'my_emails_password' 

django-registration continuación, debería ser capaz de enviar mensajes de correo electrónico.

+6

Y, solo para el registro, para cualquier otra persona que configure el correo electrónico - ** no ** cometa el error que hice, de usar comillas en el puerto, como en 'EMAIL_PORT = '587''. Eso me costó algunas horas de depuración ... –

+0

gracias a su consejo, revisé dos veces mi configuración de correo errante, solo para descubrir que 4 líneas después de configurarla con una cuenta de Gmail, la había configurado para una cuenta localhost sin sentido ! ¿Problema? Resuelto – bharal

+2

Creo que debemos usar 'EMAIL_PORT = 587' cuando' EMAIL_USE_TLS = True' –

3

EMAIL_PORT = 465 funcionaba hace un año. Ahora necesita usar el puerto 587 con gmail. Motivo: Django no es compatible con SMTP con SSL desde el principio. Solo se admite el comando STARTTLS DESPUÉS de que se establezca la conexión de texto sin formato. Gmail, sin embargo, ya no admite esta opción en el puerto 465.

1

Espero que esto ayude a alguien. Después de la resolución de problemas durante media hora, me di cuenta que tenía que indicar explícitamente esto también durante el uso de django-registro -

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

0

django-register-activate implementó una Funcionalidad similar a django-registration. Básicamente proporciona código para el registro de usuario, verificación y activación de correo electrónico, inicio de sesión de usuario y cierre de sesión de usuario.

Si necesita ejemplos para implementar su propio código, puede consultar views.py y forms.py en register_activate para obtener algunas sugerencias.

Espero que la respuesta ayude. Avísame si tienes más preguntas.

Cuestiones relacionadas