Настройка электронной почты с помощью Sendgrid в Heroku для приложения Django - PullRequest
22 голосов
/ 15 марта 2012

Я развертываю приложение Django на Heroku и использую дополнение Sendgrid для отправки электронного письма с подтверждением, когда пользователь регистрируется на сайте.

Я следовал инструкциям здесь и вставил следующее в 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_USER и EMAIL_HOST_PASSWORD?

На вкладке разработчика в надстройке sendgrid в heroku он дает мне имя пользователя app*******@heroku.com, а для пароля просто говорит "Ваш пароль". Является ли пароль моим паролем Heroku?

Кроме того, мне нужно включить DEFAULT_FROM_EMAIL в мой файл settings.py? И где мне сказать Сендгрид, что это такое?

РЕДАКТИРОВАТЬ: я установил DEBUG = True, и похоже, что ошибка:

SMTPSenderRefused

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

похоже, проблема возникает до того, как Sendgrid сделает свое дело. Нужно ли как-нибудь аутентифицировать адрес электронной почты в Heroku?

1 Ответ

39 голосов
/ 15 марта 2012

В ваших 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, так как это правильное написание.

...