Django发送电子邮件混乱

时间:2017-09-14 06:33:14

标签: python django email django-views

我使用了一个应用程序向用户发送电子邮件以进行通知。但在该应用程序中,setting.py文件包含一些令人困惑的术语,如 在

  

设置文件

EMAIL_USE_TLS = True

我不确定这是什么以及

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'rquest186@gmail.com'

这两个的变化是什么

如果主持人在这里宣布

  

mail.py

def send_mail(title,message,reciver):
    try:
        mailS = 'smtp.gmail.com'
        mailP = 587
        mailUsr = "idefusiontest2015@gmail.com" 
        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)

在此

 mailUsr = "idefusiontest2015@gmail.com" ???? what's this for ?

我是新手。这对我来说很困惑。 谢谢你。

2 个答案:

答案 0 :(得分:1)

您需要提供一个Gmail帐户才能发送邮件:

mailUsr = "idefusiontest2015@gmail.com" 
mailPass = "IDEF2017"

MailUsr是emailid,MailPass是该帐户的密码。

就像发送邮件一样,您使用这些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服务。在我的情况下,sendgrid就是gmail

  • EMAIL_HOST_USERsmtp服务中的用户名,例如该帐户的gmailidEMAIL_HOST_PASSWORD密码。

我认为现在应该很清楚。

答案 1 :(得分:0)

如果您使用django邮件发送包(如EmailMessage()for SendMail link

),则会在发送邮件时自动使用settings.py文件中的值

您正在使用的第二个是本机python包。在那你必须明确提供用户名和密码和其他配置

抱歉语言.. :))

相关问题