首页 > 解决方案 > 如何使用heroku从gmail帐户发送邮件?

问题描述

我正在尝试在 python 中构建一个简单的应用程序,如果股票/加密货币价格上涨或下跌 x%,它会发送电子邮件。我正在使用 yagmail 通过 Gmail 帐户发送这些电子邮件。我已经在本地测试过代码,现在我想把它移到 Heroku。我已经为电子邮件地址和 yagmail 的 SMTP 服务器的 Google 应用密码创建了 GitHub 机密,现在我可以通过将应用连接到我的 Github 存储库来部署该应用。据我所知,它运行得很好,但没有发送电子邮件。

我认为问题源于 yagmail 的 SMTP 服务器的 Google 应用密码,但我不确定。这是我的第一个应用程序,所以可能是我错过了一些非常基本的东西。

这是一个在我的桌面上运行但不通过 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)

标签: pythonemailgithubherokuyagmail

解决方案


您需要将配置参数(SENDER_EMAIL、SENDER_APP_PASSWORD、RECEIVER_EMAIL)定义为Config Vars
它们将在运行时注入到您的 Heroku Dyno 中(例如,在 GitHubActions 上,您的秘密可用于您的 GitHubActions 管道),您可以使用Python os package.

Heroku 上的配置变量


推荐阅读