在 Heroku 上发送 Django 电子邮件

Gin*_*ead 4 python email django heroku

这是我在 settings.py 文件中的属性:

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'infobot9@gmail.com'
EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_HOST_PASSWORD')
EMAIL_PORT = 587
Run Code Online (Sandbox Code Playgroud)

这是我的发送电子邮件方法:

from django.core.mail import send_mail 


def sendConfirmEmail(email, instance, code):
    mail_subject = 'Confirmation code {}'.format(code)
    message = render_to_string("msg.html", {
       'user': instance,
       'code': code

    })
    to_email = email
    send_mail(mail_subject, message, 'infobot9@gmail.com', [to_email], 
              fail_silently=False)
Run Code Online (Sandbox Code Playgroud)

我的 Django 电子邮件发送方法在我的本地主机上运行良好。将其部署到 Heroku 后,我在 Gmail 设置中允许从未知设备登录。Gmail 不允许服务器登录我的帐户并向我发送消息:

恶意登录尝试被阻止

?infobot9@gmail.com

有人试图使用为他们设置的密码登录您的帐户。如果不是您本人,我们建议您尽快更改密码。

?

未知设备

?

4 月 4 日 11:39

?

靠近这个地方:都柏林,爱尔兰

176.34.163.6(IP地址)

我应该在我的settings.py文件中设置额外的参数还是需要更改我的 Gmail 帐户设置?

Chr*_*ris 7

我敦促您不要在生产中使用 Gmail 发送电子邮件。它不是为此而设计的,正如您发现的那样,有一些措施可以防止它被用作垃圾邮件中继。即使您发送的是合法电子邮件,Gmail 也会给您带来麻烦。

相反,使用旨在从 SendGrid 或 Mailgun 等托管应用程序发送邮件的服务。这些都列在 Heroku 的插件中,并且都有免费的入门计划。选择一个并阅读其入门指南。这不仅在处理少量邮件时效果更好,而且为您的增长做好了准备。