2017-09-14 148 views
1

我使用一个应用程序与发送电子邮件给用户进行通知。但在应用setting.py文件包含的Django发送电子邮件混乱

设置文件

EMAIL_USE_TLS = True 

一些容易混淆的术语如 我不知道这是什么,也

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

什么就是在这两年

的品种,如果主机是d在此

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

这里eclared然后

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) 

我是新来这。这让我感到困惑。 谢谢你。

+0

也许你应该花几分钟阅读相关的电子邮件Django文档页面:https://开头的文档.djangoproject.com/en/1.11/topics/email/ – Antwane

回答

1

您需要提供一个Gmail帐户来发送邮件时:

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

MailUsr是EMAILID和MailPass是该帐户的passowrd。

它就像发送邮件使用的是这些EMAILID和密码登录到gmail帐户,然后发送邮件。

所以,如果你想发送,那么你需要使用你的EMAILID和密码,它取代。

settings.py

你需要有这些设置。

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是您使用的是smtp服务。在我的情况下,你的情况gmailsendgrid

  • EMAIL_HOST_USER是您帐户中smtp服务的用户名,该帐户的密码为gmailidEMAIL_HOST_PASSWORD

我认为现在应该清楚你。

希望它可以帮助!

+0

** EMAIL_USE_TLS = True ** –

+0

它是发送安全邮件的端口。 TLS(传输层安全协议)。 –

+0

如果你使用'port:25',它不安全。这就像在端口443上访问“https”和在端口80上访问“http” –

0

从设置的值。py文件将在发送邮件时自动使用,如果您使用django邮件发送程序包如EmailMessage()for SendMail link

您正在使用的第二个是本机python软件包。上,你必须明确提供的用户名和密码等配置

遗憾的语言.. :)