Ne peut pas faire travailler Django smtp.gmail.com

j'ai essayé de faire travailler django avec le serveur smtp de gmail pour envoyer des mails mais j'ai toujours ce traceback. Toute aide sera appréciée.

----- settings.py -----

EMAIL_HOST = 'smtp.gmail.com'

EMAIL_HOST_USER = 'user@gmail.com'

EMAIL_HOST_PASSWORD = 'your-password'

EMAIL_PORT = 587

EMAIL_USE_TLS = True

---- python shell -----

from django.core.d'importation du courrier EmailMessage

email = EmailMessage('Mail Test', 'Ceci est un test',=['somemail@something.com'])

e-mail.envoyer()

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

Edit: de Nouvelles erreurs lors de la fait de la modification suggérée par unni. Le shell ne s'exécute pas et je reçois ce message d'erreur

**EMAIL_HOST_USER  = 'some.account@gmail.com'**
 ^
SyntaxError: invalid syntax
18
demandé sur la_f0ka 2011-10-24 18:46:10

5 réponses

j'ai récemment mis en place et était légèrement différente settings.py config.

Déplacer:

EMAIL_USE_TLS = True 

vers le haut au-dessus D'EMAIL_HOST

Ajouter:

DEFAULT_FROM_EMAIL = 'user@gmail.com'
SERVER_EMAIL = 'user@gmail.com'
6
répondu Mike Davies 2013-01-27 16:16:59

Modifier vos paramètres comme ceci :

EMAIL_HOST = 'smtp.gmail.com'

EMAIL_HOST_USER = 'user'

EMAIL_HOST_PASSWORD = 'your-password'

EMAIL_PORT = 587

EMAIL_USE_TLS = True

Puis essayer:

python manage.py shell
>>> from django.core.mail import EmailMessage
>>> email = EmailMessage('Mail Test', 'This is a test', to=['somemail@something.com'])
>>> email.send()

cela devrait revenir avec le statut 1, ce qui signifie que cela a fonctionné.

15
répondu unni 2013-01-27 16:22:30

j'ai eu le même problème, et j'ai cherché pendant une demi-journée pour trouver une solution. La plupart des solutions proposées parlent de l'endroit où vous devriez initialiser EMAIL_USE_TLS par rapport aux autres paramètres. Je ne pense pas que ce soit une solution pour le problème.

j'ai trouvé la solution à: https://support.google.com/accounts/answer/185833?hl=en et enfin https://security.google.com/settings/security/apppasswords

Si vous testez votre projet sur un ordinateur local, vous devez aller sur le dernier lien, et permettre "l'Accès pour moins d'applications sécurisées".

7
répondu 1man 2014-08-13 19:30:28
EMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend'
EMAIL_HOST='smtp.gmail.com'
EMAIL_PORT=465
EMAIL_HOST_USER = 'youruser'
EMAIL_HOST_PASSWORD = '*********'
DEFAULT_EMAIL_FROM = 'youremail@gmail.com'

fonctionne très bien

0
répondu sammarxz 2016-10-16 17:55:34

vous devez aller à ce lien https://www.google.com/settings/u/2/security/lesssecureapps?pageId=none et activer l'accès pour le moins en sécurité des applications

cette option permet à django d'accéder à votre e-mail et de l'envoyer via celui-ci .

0
répondu Maysara Alhindi 2016-11-10 17:46:17