【问题标题】:Heroku send mail via extern SMTP serverHeroku 通过外部 SMTP 服务器发送邮件
【发布时间】:2021-02-03 04:43:05
【问题描述】:

有没有办法通过一个部署在 Heroku 上的应用程序通过外部 SMTP 服务器从 python 代码发送邮件? (不使用 Herokus 插件之一)

提前致谢 P.

【问题讨论】:

  • 从 python 代码发送邮件不是问题。我的代码有效,但仅限于本地。一旦它被部署到 Heroku,它就不再发送邮件了。一旦它到达试图建立 smtp 连接的代码行,应用程序就会崩溃/超时。

标签: python email heroku smtp extern


【解决方案1】:

您确实可以使用外部 SMTP 提供商通过 Heroku 发送电子邮件(我在我运行的几个应用程序上这样做)。然而,需要注意的一点是,由于滥用,许多 SMTP 提供商(例如 Gmail)会定期阻止来自流行托管服务提供商(如 Heroku)的 IP。

这是has been documented before 的常见问题。

这就是 Heroku officially recommends 使用 Mailgun、Sendgrid 等电子邮件发送服务的原因,因为它们是专用的电子邮件提供商,旨在供开发人员使用,不会阻止您等。

简而言之:您的外部 SMTP 提供商可能会阻止 Heroku 服务。与他们联系,看看您是否可以取消限制,或者如果您希望保证送达,是否可以使用真正的电子邮件发送服务。

【讨论】:

  • 非常感谢您的深刻回答。我不完全确定 Heroku 是否可能完全阻止 SMTP 连接以强制用户使用他们的优惠。似乎我无法从我的邮件提供商设置中删除此限制。也许您可以让我知道您在应用程序中使用的是哪个提供商?我真的很感激。谢谢
  • 我正在使用我自己设置的私人 SMTP 服务器。我曾经使用过 Gmail,但在他们开始阻止 AWS IP 范围时遇到了类似的问题:(
  • 有谁知道与heroku 兼容的外部邮件提供商(不是herokus 集成模块之一!)?那太好了。
  • @PietZeHut 有很多。您也不必为此使用 SMTP。比如Mailgun、Sendgrid等都是独立的邮件服务。他们只有一个 Heroku 插件,因此您可以根据需要通过 Heroku 轻松创建一个帐户,但您不必这样做。我强烈推荐 Sendgrid 或 Mailgun,因为它们非常易于使用并且非常适合发送电子邮件。您可以独立注册,获取 API 密钥,并将其添加到您的 Heroku 环境变量中,以便像使用任何其他服务一样使用它。
  • 实际目标是独立于其他服务。无论如何,非常感谢您的建议,太好了。
猜你喜欢
  • 1970-01-01
  • 2011-02-07
  • 2018-10-17
  • 1970-01-01
  • 2011-10-21
  • 2016-06-15
  • 1970-01-01
  • 1970-01-01
  • 2011-10-25
相关资源
最近更新 更多