2017-09-14 1 views
1

J'ai employé une application avec l'envoi d'email à l'utilisateur pour la notification. mais dans ce fichier setting.py d'application contient des termes confus comme dansDjango envoi confusion d'email

fichier de configuration

EMAIL_USE_TLS = True 

Je ne sais pas ce que cela est aussi

EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_HOST_USER = '[email protected]' 

ce est la variété dans ce deux

et si l'hôte est d eclared ici alors

mail.py

def send_mail(title,message,reciver): 
    try: 
     mailS = 'smtp.gmail.com' 
     mailP = 587 
     mailUsr = "[email protected]" 
     mailPass = "********" 

     # Create a text/plain message 
     msg = MIMEMultipart('alternative') 

     msg['Subject'] = title 
     msg['From'] = mailUsr 
     msg['To'] = reciver 

     html="<html><head></head><body><p>"+message.replace("\n","<br>")+"</p></body></html>" 

     part2 = MIMEText(html, 'html') 

     msg.attach(part2) 

     # Send the message via our own SMTP server, but don't include the 
     s = smtplib.SMTP(mailS,mailP) 
     s.ehlo() 
     s.starttls() 
     s.ehlo() 
     s.login(mailUsr,mailPass) 
     s.sendmail(mailUsr, [reciver], msg.as_string()) 
     s.quit() 

    except Exception as e: 
     print(e) 

dans ce

mailUsr = "[email protected]" ???? what's this for ? 

Je suis nouveau à cela. et c'est confus pour moi. merci à adv.

+0

Peut-être que vous devriez prendre quelques minutes pour lire la page de documentation Django liés à la messagerie: https: // docs .djangoproject.com/fr/1.11/topics/email/ – Antwane

Répondre

1

Vous devez fournir un compte gmail pour envoyer du courrier à partir de:

mailUsr = "[email protected]" 
mailPass = "********" 

MailUsr est le EMAILID et MailPass est passowrd de ce compte. Il est comme pour l'envoi de courrier que vous vous connectez au compte gmail en utilisant ces emailid et mot de passe, puis en envoyant le courrier. Donc, si vous voulez envoyer, vous devez utiliser votre emailid et votre mot de passe à la place de cela.

settings.py

Vous devez avoir ces paramètres.

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 
EMAIL_HOST = 'smtp.sendgrid.net' 
EMAIL_HOST_USER = 'username' 
EMAIL_HOST_PASSWORD = 'password' 
EMAIL_PORT = 587 
EMAIL_USE_TLS = True 
  • EMAIL_HOST est le service smtp que vous utilisez. Dans mon cas, c'est sendgrid dans votre cas gmail.

  • EMAIL_HOST_USER est le nom d'utilisateur de ce service smtp dans votre cas et votre mot de passe gmailidEMAIL_HOST_PASSWORD pour ce compte.

Je pense que cela devrait être clair pour vous maintenant.

Espérons que ça aide !!!

+0

** à propos de ** EMAIL_USE_TLS = Vrai ** –

+0

C'est un port pour l'envoi de mails sécurisés. TLS (Transport Layer Security Protocol). –

+0

Si vous utilisez 'port: 25', il n'est pas sécurisé. C'est comme si vous accédiez à 'https' sur le port 443 et' http' sur le port 80 –

0

Les valeurs des paramètres.py sera utilisé automatiquement lors de l'envoi de courrier lorsque si vous utilisez l'envoi de courrier paquet de django comme EmailMessage() pour SendMail link

la seconde que vous utilisez est paquet python natif. sur ce que vous devez fournir explicitement le nom d'utilisateur et mot de passe et d'autres configurations

désolé la langue .. :)