Как отправлять письма из учетной записи gmail с помощью heroku?

#python #email #github #heroku #yagmail

Вопрос:

Я пытаюсь создать простое приложение на python, которое отправляет электронные письма, если цены на акции/криптовалюты растут или снижаются на x процентов. Я использую yagmail для отправки этих писем через учетную запись Gmail. Я уже протестировал код локально и теперь хочу перенести его в Heroku. Я создал секреты GitHub для адресов электронной почты и пароля приложения Google для SMTP-сервера yagmail, и теперь я могу развернуть приложение, подключив его к своему репозиторию Github. Насколько я могу судить, все работает нормально, но электронные письма не отправляются.

Я думаю, что проблема связана с паролем приложения Google для SMTP-сервера yagmail, но я не уверен. Это мое первое приложение, так что, возможно, мне не хватает чего-то действительно базового.

Вот простой пример кода, который работает на моем рабочем столе, но не через Heroku:

 SENDER_EMAIL = os.getenv("SENDER_EMAIL")
SENDER_APP_PASSWORD = os.getenv("SENDER_APP_PASSWORD")
RECEIVER_EMAIL = os.getenv("RECEIVER_EMAIL")

test_sub = "Test mail"
test_cont = "Test content"

with yagmail.SMTP(SENDER_EMAIL, SENDER_APP_PASSWORD) as yag:
            yag.send(RECEIVER_EMAIL, test_sub, test_cont)
 

Ответ №1:

Вам необходимо определить параметры конфигурации (SENDER_EMAIL, SENDER_APP_PASSWORD, RECEIVER_EMAIL) в качестве конфигурационных параметров.
Они будут введены во время выполнения в ваш Heroku Dyno (например, в GitHubActions ваши секреты могут использоваться для вашего конвейера GitHubActions), где вы можете их использовать Python os package .

Параметры конфигурации на Heroku