python - smtpauthenticationerror - Django 1.8 enviando correo usando gmail SMTP
send email django (6)
Estaba intentando enviar un correo usando smtp.gmail.com
en django 1.8
Mi settings.py
contiene:
EMAIL_BACKEND = ''django_smtp_ssl.SSLEmailBackend''
EMAIL_HOST = ''smtp.gmail.com''
EMAIL_PORT = 465
EMAIL_HOST_USER = ''sarath4coding''
EMAIL_HOST_PASSWORD = ''*********''
DEFAULT_EMAIL_FROM = ''[email protected]''
from django.core import mail
mail.send_mail(''subject'',''message'',''[email protected]'',[''[email protected]''])
Pero tengo este error
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/manager/dj1.8/local/lib/python2.7/site-packages/django/core/mail/__init__.py", line 62, in send_mail
return mail.send()
File "/home/manager/dj1.8/local/lib/python2.7/site-packages/django/core/mail/message.py", line 303, in send
return self.get_connection(fail_silently).send_messages([self])
File "/home/manager/dj1.8/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 100, in send_messages
new_conn_created = self.open()
File "/home/manager/dj1.8/local/lib/python2.7/site-packages/django_smtp_ssl.py", line 14, in open
self.connection.login(self.username, self.password)
File "/usr/lib/python2.7/smtplib.py", line 622, in login
raise SMTPAuthenticationError(code, resp)
SMTPAuthenticationError: (534, ''5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbuze/n5.7.14 2FDKQt2Dlo2vqFIvbr6DnBItwWvh9DChPwbeTZO66N91gzmiA437Vqs80cZ9-8u13vxq5a/n5.7.14 bVahzO_BQcZ53yKbJ-YbAlmFE1XIK7MfH97O0wI1lvzpTG_WAHuTIBF0HD1GA2icUoUemt/n5.7.14 ErZn4qb942aAIMG103FnrzLp4txXTbXC-wGLpaz5yvnUN5thahvv3-RiIVW8F1QddZKZlg/n5.7.14 qQKpqWw56zr1AcO2s_oaBEt556fQ> Please log in via your web browser and/n5.7.14 then try again./n5.7.14 Learn more at/n5.7.14 https://support.google.com/mail/answer/78754 kx14sm6579665pab.0 - gsmtp'')
Intenté todo lo que dice el documento y seguí muchas soluciones sugeridas.
como https://accounts.google.com/DisplayUnlockCaptcha , habilitando aplicaciones de baja seguridad, etc.
pero todavia tengo errores
¿Alguien puede saber cómo configurar correctamente Django 1.8 para enviar correo usando Gmail?
En settings.py cambia esto
EMAIL_HOST=''imap.gmail.com''
EMAIL_PORT = 587
EMAIL_HOST_USER = ''[email protected]''
EMAIL_HOST_PASSWORD =''**********''
EMAIL_USE_SSL=False
EMAIL_USE_TLS= True
Esto funciona para mí:
settings.py
EMAIL_BACKEND = ''django_smtp_ssl.SSLEmailBackend''
EMAIL_HOST = ''smtp.gmail.com''
EMAIL_HOST_PASSWORD = ''test''
EMAIL_HOST_USER = ''[email protected]''
EMAIL_PORT = 587
EMAIL_USE_TLS = True
Desbloquear Captcha: https://accounts.google.com/DisplayUnlockCaptcha
vistas.py
email = EmailMessage(
''subject_message'',
''content_message'',
''sender smtp gmail'' +''<[email protected]>'',
[''[email protected]''],
headers = {''Reply-To'': ''[email protected]'' }
)
email.send()
Probé esto y trabajé perfecto en Django 1.8:
Primero debes revisar este enlace , proporcionado por google, que hiciste :)
note que por algunas razones extrañas que no conozco, debe codificar así en view.py or shell
:
import django
from django.conf import settings
from django.core.mail import send_mail
send_mail(''Subject here'', ''Here is the message.'', settings.EMAIL_HOST_USER,
[''[email protected]''], fail_silently=False)
También esta es mi configuración en el archivo setting.py
:
EMAIL_USE_TLS = True
EMAIL_BACKEND = ''django.core.mail.backends.smtp.EmailBackend''
EMAIL_HOST = ''smtp.gmail.com''
EMAIL_HOST_PASSWORD = ''xxxx'' #my gmail password
EMAIL_HOST_USER = ''[email protected]'' #my gmail username
EMAIL_PORT = 587
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
Recuerda:
Vaya a la configuración de su cuenta de Google, busque Seguridad -> Permisos de la cuenta -> Acceso para aplicaciones menos seguras, habilite esta opción.
Acerca de esta opción: https://support.google.com/accounts/answer/6010255
Reemplace en su archivo settings.py:
EMAIL_BACKEND = ''django_smtp_ssl.SSLEmailBackend''
por
EMAIL_BACKEND = ''django.core.mail.backends.smtp.EmailBackend''
para mi en settings.py :
EMAIL_USE_TLS = True
EMAIL_HOST = ''smtp.gmail.com''
EMAIL_HOST_USER = ''[email protected]''
EMAIL_HOST_PASSWORD = ''test''
EMAIL_PORT = 587
y views.py :
from django.core.mail import EmailMessage
email = EmailMessage(''title'', ''body'', to=[email])
email.send()