使用Heroku中的Sendgrid为Django App设置电子邮件

时间:2012-03-15 15:59:34

标签: django email heroku sendgrid

我正在Heroku上部署Django应用程序,并在用户在网站上注册时使用Sendgrid插件发送验证电子邮件。

我按照说明here将以下内容粘贴到settings.py

EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = 'sendgrid_username'
EMAIL_HOST_PASSWORD = 'sendgrid_password'
EMAIL_PORT = 587
EMAIL_USE_TLS = True

但是,我的应用在注册后崩溃了。

我应该为EMAIL_HOST_USEREMAIL_HOST_PASSWORD准确提出什么?

在heroku的sendgrid插件中的开发人员选项卡下,它为我提供了用户名app*******@heroku.com,而对于密码,它只是显示“您的密码”。密码是我的Heroku密码吗?

另外,我是否需要在DEFAULT_FROM_EMAIL文件中加入settings.py?我在哪里告诉Sendgrid它是什么?

编辑:我设置了DEBUG = True,看起来错误是:

SMTPSenderRefused

(550, 'Cannot receive from specified address <info@myapp.com>: Unauthenticated senders not allowed', 'info@myapp.com')

看起来问题是在Sendgrid完成之前发生的。我是否需要以某种方式使用Heroku验证电子邮件地址?

1 个答案:

答案 0 :(得分:39)

在settings.py中包含:

import os
EMAIL_HOST_USER = os.environ['SENDGRID_USERNAME']
EMAIL_HOST= 'smtp.sendgrid.net'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_PASSWORD = os.environ['SENDGRID_PASSWORD']

编辑:将EMAIL_PASSWORD更改为EMAIL_HOST_PASSWORD,因为这是正确的拼写。