2012-03-15 32 views
20

Tôi đang triển khai ứng dụng Django trên Heroku và sử dụng addon Sendgrid để gửi email xác thực khi người dùng đăng ký trên trang web.Thiết lập email bằng Sendgrid trong Heroku cho Ứng dụng Django

Tôi làm theo các hướng dẫn here và dán đoạn mã sau vào settings.py:

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

Tuy nhiên, ứng dụng của tôi đang đâm sau khi đăng ký.

Chính xác tôi phải đặt cho EMAIL_HOST_USEREMAIL_HOST_PASSWORD là gì?

Dưới tab của nhà phát triển trong phần bổ trợ gửi trong heroku, nó cung cấp cho tôi tên người dùng app*******@heroku.com và mật khẩu chỉ cần nói "Mật khẩu của bạn". Mật khẩu Heroku của tôi có phải là mật khẩu không?

Ngoài ra, tôi có cần bao gồm DEFAULT_FROM_EMAIL trong tệp settings.py của mình không? Và tôi nói với Sendgrid nó ở đâu?

EDIT: Tôi đã thiết DEBUG = True, và có vẻ như lỗi này là:

SMTPSenderRefused 

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

có vẻ như vấn đề đang xảy ra trước khi Sendgrid làm việc của nó. Tôi có cần xác thực địa chỉ email với Heroku bằng cách nào đó không?

Trả lời

37

Trong settings.py của bạn bao gồm:

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'] 

Chỉnh sửa: thay đổi EMAIL_PASSWORD để EMAIL_HOST_PASSWORD như đó là đúng chính tả.

+0

Tôi đã thực hiện các thay đổi nhưng vẫn gặp lỗi. Tôi đặt debug = true và lỗi được SMTPSenderRefused, nói rằng nó không thể nhận được từ địa chỉ được chỉ định <[email protected]>: Người gửi chưa được xác thực không được phép. Ai sẽ xác thực email trong Heroku? – WarAndPiece

+1

Ok, đây thực sự là câu trả lời nhưng phải là "EMAIL_HOST_PASSWORD" và không phải là "EMAIL_PASSWORD" – WarAndPiece

+0

nhờ đoạn mã hoạt động hoàn hảo – soField

Các vấn đề liên quan