2012-03-15 45 views
20

我在Heroku上部署Django應用程序,並使用Sendgrid插件發出確認電子郵件時,該網站上的用戶註冊。設置電子郵件與Sendgrid在Heroku上的Django應用程序

我跟着指示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密碼嗎?

另外,是否需要在我的settings.py文件中包含DEFAULT_FROM_EMAIL?我在哪裏告訴Sendgrid它是什麼?

編輯:我給自己定DEBUG = True,它看起來像錯誤是:

SMTPSenderRefused 

(550, 'Cannot receive from specified address <[email protected]>: Unauthenticated senders not allowed', '[email protected]') 

看起來問題發生Sendgrid就執行了。我需要用Heroku認證電子郵件地址嗎?

回答

37

在你的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因爲這是正確的拼寫。

+0

我所做的修改,但仍然得到錯誤。我設置了debug = true,並且錯誤是SMTPSenderRefused,稱它不能從指定地址<[email protected]>接收:未經身份驗證的發件人不被允許。 Heroku在哪裏認證電子郵件? – WarAndPiece 2012-03-15 21:30:31

+1

好吧,其實這是答案,但它應該是「EMAIL_HOST_PASSWORD」,而不是「EMAIL_PASSWORD」 – WarAndPiece 2012-03-17 06:55:26

+0

感謝片斷工作完美 – soField 2012-03-30 17:32:17

相關問題