python - mass - send email django google
No se puede configurar Django para que funcione con smtp.gmail.com (5)
He estado tratando de hacer que django trabaje con el servidor smtp de gmail para enviar correos, pero siempre recibo este rastreo. Cualquier ayuda será muy apreciada.
----- settings.py -----
EMAIL_HOST = ''smtp.gmail.com''
EMAIL_HOST_USER = ''[email protected]''
EMAIL_HOST_PASSWORD = ''your-password''
EMAIL_PORT = 587
EMAIL_USE_TLS = True
---- concha de pitón -----
desde django.core.mail import EmailMessage
email = EmailMessage (''Prueba de correo'', ''Esto es una prueba'', a = [''[email protected]''])
Enviar correo electrónico()
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/fiodorovich/Envs/fdict/lib/python2.7/site-packages/django/core/mail/message.py", line 251, in send
return self.get_connection(fail_silently).send_messages([self])
File "/home/fiodorovich/Envs/fdict/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 86, in send_messages
sent = self._send(message)
File "/home/fiodorovich/Envs/fdict/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 104, in _send
email_message.message().as_string())
File "/usr/local/lib/python2.7/smtplib.py", line 701, in sendmail
raise SMTPSenderRefused(code, resp, from_addr)
SMTPSenderRefused: (530, ''5.7.0 Must issue a STARTTLS command first. z15sm10449686anl.15'', ''webmaster@localhost'')
Edición: Nuevos errores cuando se realiza la modificación sugerida por unni. El shell no se ejecuta y recibo este mensaje de error
**EMAIL_HOST_USER = ''[email protected]''**
^
SyntaxError: invalid syntax
Cambia tu configuración de esta manera:
EMAIL_HOST = ''smtp.gmail.com''
EMAIL_HOST_USER = ''user''
EMAIL_HOST_PASSWORD = ''your-password''
EMAIL_PORT = 587
EMAIL_USE_TLS = True
Entonces intenta:
python manage.py shell
>>> from django.core.mail import EmailMessage
>>> email = EmailMessage(''Mail Test'', ''This is a test'', to=[''[email protected]''])
>>> email.send()
Esto debería volver con el estado 1, lo que significa que funcionó.
Recientemente he configurado esto y tuve una configuración de settings.py un poco diferente.
Movimiento:
EMAIL_USE_TLS = True
a la parte superior por encima de EMAIL_HOST
Añadir:
DEFAULT_FROM_EMAIL = ''[email protected]''
SERVER_EMAIL = ''[email protected]''
Tiene que ir a este enlace https://www.google.com/settings/u/2/security/lesssecureapps?pageId=none y activar el acceso para aplicaciones menos seguras
esta opción permite a django acceder a su correo electrónico y enviarlo a través de él.
Tuve el mismo problema, y busqué medio día para encontrar una solución. La mayoría de las soluciones propuestas se refieren a dónde debería inicializar EMAIL_USE_TLS en relación con las otras configuraciones. No creo que esta sea una solución para el problema.
Encontré la solución en: https://support.google.com/accounts/answer/185833?hl=en y finalmente https://security.google.com/settings/security/apppasswords
Si está probando su proyecto en una máquina local, debe ir al último enlace y habilitar "Acceso para aplicaciones menos seguras".
EMAIL_BACKEND = ''django_smtp_ssl.SSLEmailBackend''
EMAIL_HOST=''smtp.gmail.com''
EMAIL_PORT=465
EMAIL_HOST_USER = ''youruser''
EMAIL_HOST_PASSWORD = ''*********''
DEFAULT_EMAIL_FROM = ''[email protected]''
funciona bien