Para que Django envie correo en Dreamhost
Hoy he hecho mi descubrimiento 'tonto' del mes: desde que puse en marcha esto nunca recibía mensajes de error. Como ya comenté otro día, en Django se pasa un poco de los logs de errores y en cambio funcionan a base de enviar correos cuando hay algún fallo gordo. Y se supone que este sistema viene configurado por defecto. Pero a mi no me llegaba absolutamente ningún mensaje
Pues ya he descubierto porqué: ¡lo tenía mal configurado! El problema es que al no haber logs, no veía por ningún lado el mensaje de error que daba al intentar enviar correo. Para investigar estos problemas ayuda mucho el ./manage.sh shell:
./manage.py shell
(unos cuantos mensajes de información)
>>> from django.core.mail import *
>>> mail_admins('prueba','envio al admin',fail_silently=False)
(y he aquí el error)
File "smtplib.py", line 695, in sendmail
raise SMTPRecipientsRefused(senderrs)
SMTPRecipientsRefused: {'usuario@dominio.com': (504, ': Sender address rejected: need fully-qualified address')}
Pues eso, mirando la ayuda sobre el módulo de e-mail descubro que me falta definir una variable: SERVER_EMAIL (porque Dreamhost rechaza recibir correos de remitentes no válidos, y el valor por defecto es inválido). En resumen, que para que funcione lo de enviar en correo en Dreamhost hay que tener esto en el settings.py:
# supongamos que tu dominio en dreamhost es: prueba.com
# supongamos que tienes dado de alta un usuario llamado prueba@prueba.com
EMAIL_HOST = mail.prueba.com
EMAIL_HOST_USER = prueba@prueba.com
EMAIL_HOST_PASSWORD = prueba
EMAIL_USE_TLS = True
SERVER_EMAIL = prueba@prueba.com
# y por supuesto tener definido un admin
ADMINS = (
("El Jefe de todo","jefe_de_todo@gmail.com"),
)
09 April 2009
