web-dev-qa-db-ja.com

Django 1.8 gmail SMTPを使用してメールを送信する

Django 1.8でsmtp.gmail.comを使用してメールを送信しようとしました

私のsettings.pyには以下が含まれます:

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]'])

しかし、このエラーが発生しました

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')

私は、この文書に書かれていることをすべて試し、多くの提案された解決策に従いました。

https://accounts.google.com/DisplayUnlockCaptcha のように、低セキュリティアプリなどを有効にします。

しかし、まだエラーが発生しました

Gmailを使用してメールを送信するためにDjango 1.8を適切に設定する方法は誰でも教えてください。

28
Sarath Babu

私のためにsettings.py

EMAIL_USE_TLS = True
EMAIL_Host = 'smtp.gmail.com'
EMAIL_Host_USER = '[email protected]'
EMAIL_Host_PASSWORD = 'test'
EMAIL_PORT = 587

およびviews.py

from Django.core.mail import EmailMessage

email = EmailMessage('title', 'body', to=[email])
email.send()

および: https://accounts.google.com/DisplayUnlockCaptcha

42
Alex Karahanidi

忘れないでください:

Googleアカウントの設定に移動し、[セキュリティ]-> [アカウントのアクセス許可]-> [安全性の低いアプリのアクセス]を見つけて、このオプションを有効にします。

このオプションについて: https://support.google.com/accounts/answer/6010255

20
edilio

私はこれをテストし、Django 1.8で完璧に働きました:
最初に このリンク を確認する必要があります。これは、Googleが提供したものです:)
私が知らないいくつかの奇妙な理由により、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)

また、これは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
11
Iman Mirzadeh

settings.pyファイルで置き換えます:

EMAIL_BACKEND = 'Django_smtp_ssl.SSLEmailBackend'

沿って

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

7
Ajay Gupta

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
5
Abhishek Yadav

これは私のために働く:

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

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()
1
ordenador.cl

私はこれをDjango 1.11

Settings.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

View.pyで

send_mail('mail subject', 'body content',settings.EMAIL_Host_USER,
                      ['[email protected]'], fail_silently=False)

およびgoto https://myaccount.google.com/u/0/security?hl=en により、安全性の低いアプリアクセスが可能になります

0
Parthi.N