2017-10-18 29 views
0

Ceci est très bien potentiellement une double question, mais aucun des autres doublons évidents ont résolu le problème pour moi:Utiliser Django envoyer Gmail

C'est un projet hérité.

Mon settings.py comprend:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 
EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'my_password' 
EMAIL_PORT = '587' 
EMAIL_USE_TLS = True 
DEFAULT_FROM_EMAIL = '[email protected]' 
DEFAULT_FEEDBACK_EMAIL = '[email protected]' 
SERVER_EMAIL = '[email protected]' 
ACCOUNT_EMAIL_VERIFICATION = 'none' 

Le code que je suis en train de courir est:

subject = 'Subject' 
template = get_template('accounts/email-templates/email-activation.html').render(Context(ctx)) 
email = EmailMessage(subject, template, to=[send_to]) 
     email.content_subtype = "html" 
try: 
    email.send() 

Mon erreur en essayant à plusieurs reprises avec python manage.py shell est:

gaierror: [Errno 8] nodename nor servname provided, or not known 

Mon dns semble bien, sudo killall -HUP mDNSResponder et dscacheutil -flushcache ont été exécutés w sans succès, mais je ne suis pas un expert sur les paramètres DNS. Mon fichier hosts est:

127.0.0.1  localhost 
255.255.255.255 broadcasthost 
::1    localhost 

conseils apprécié!

+0

Quelle est la trace complète de la pile lorsque vous l'exécutez sans "try:"? –

Répondre

0

Vous devrez peut-être générer un mot de passe d'application dans Gmail ou modifier les paramètres en allow less secure access. Je ne pense pas que Gmail vous permettra d'utiliser votre mot de passe habituel - ce que Google considère - d'une manière non sécurisée.

+0

J'ai déjà essayé ces choses, malheureusement. Je pense que le problème est de ma part. – mjabraham

0

J'ai eu un problème similaire en travaillant avec Gmail pour envoyer des mails.

Essayez uniquement les codes suivants pour envoyer des courriels. Espérons que cela aide:

Dans settings.py

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 
EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_HOST_USER = "[email protected]" 
EMAIL_HOST_PASSWORD = "email_password" 
EMAIL_PORT = 0 
EMAIL_USE_TLS = True 

Codes pour envoyer des emails:

# Imports for sending emails: 
from django.conf import settings 
from django.core.mail import EmailMultiAlternatives, send_mail 

emailFrom = [settings.EMAIL_HOST_USER] 
emailTo = email_here 
text_content = 'Your content here' 
email_subject = "Subject here" 
msg = EmailMultiAlternatives(email_subject, text_content, emailFrom, [emailTo],) 
msg.send() 

changer également le settings dans le 'compte de l'expéditeur gmail' pour créer un passage pour le courrier à envoyer de l'expéditeur au destinataire. J'espère que cela t'aides.