Ich habe versucht, eine E-Mail mit smtp.gmail.com
in Django 1.8 zu senden
Mein settings.py
enthält:
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]'])
Aber habe diesen Fehler bekommen
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')
Ich habe alles aus dem Dokument probiert und viele Lösungsvorschläge verfolgt.
wie https://accounts.google.com/DisplayUnlockCaptcha , Aktivieren von Anwendungen mit niedriger Sicherheit usw.
aber ich habe immer noch fehler
Kann jemand sagen, wie man Django 1.8 so konfiguriert, dass E-Mails mit Google Mail gesendet werden.
für mich in settings.py:
EMAIL_USE_TLS = True
EMAIL_Host = 'smtp.gmail.com'
EMAIL_Host_USER = '[email protected]'
EMAIL_Host_PASSWORD = 'test'
EMAIL_PORT = 587
und views.py:
from Django.core.mail import EmailMessage
email = EmailMessage('title', 'body', to=[email])
email.send()
Erinnere dich an:
Wechseln Sie zu Ihren Google-Kontoeinstellungen, suchen Sie Sicherheit -> Kontoberechtigungen -> Zugriff auf weniger sichere Apps. Aktivieren Sie diese Option.
Informationen zu dieser Option: https://support.google.com/accounts/answer/6010255
Ich habe das getestet und in Django 1.8 perfekt gearbeitet:
Zuerst sollten Sie diesen Link -, der von Google bereitgestellt wurde, prüfen, was Sie getan haben :)
Beachten Sie, dass Sie aus merkwürdigen Gründen, die ich nicht kenne, in view.py or Shell
so codieren müssen:
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)
dies ist auch meine Einstellung in setting.py
-Datei:
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
ersetzen Sie in Ihrer Datei settings.py:
EMAIL_BACKEND = 'Django_smtp_ssl.SSLEmailBackend'
durch
EMAIL_BACKEND = 'Django.core.mail.backends.smtp.EmailBackend'
Ändern Sie dies in settings.py .__
EMAIL_Host='imap.gmail.com'
EMAIL_PORT = 587
EMAIL_Host_USER = '[email protected]'
EMAIL_Host_PASSWORD ='**********'
EMAIL_USE_SSL=False
EMAIL_USE_TLS= True
Das funktioniert für mich:
einstellungen.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
Entsperren Sie das Captcha: https://accounts.google.com/DisplayUnlockCaptcha
views.py
email = EmailMessage(
'subject_message',
'content_message',
'sender smtp gmail' +'<[email protected]>',
['[email protected]'],
headers = {'Reply-To': '[email protected]' }
)
email.send()
Ich habe dies für Django 1.11 verwendet
In Einstellungen.py
EMAIL_USE_TLS = True
EMAIL_BACKEND = 'Django.core.mail.backends.smtp.EmailBackend'
EMAIL_Host = 'smtp.gmail.com'
EMAIL_Host_PASSWORD = 'sender' #sender mail password
EMAIL_Host_USER = '[email protected]' #sender mail username
EMAIL_PORT = 587
DEFAULT_FROM_EMAIL = EMAIL_Host_USER
In view.py
send_mail('mail subject', 'body content',settings.EMAIL_Host_USER,
['[email protected]'], fail_silently=False)
und goto https://myaccount.google.com/u/0/security?hl=de , um einen weniger sicheren Zugriff auf die App zu ermöglichen