【问题标题】:Serve Static Images with Phoenix Elixir使用 Phoenix Elixir 提供静态图像
【发布时间】:2019-08-15 23:22:18
【问题描述】:

我正在尝试使用 Elixir 和 Phoenix 部署一个带有 Heroku 的 API。在某些用例中,我需要发送一封 HTML 电子邮件(这一切都已弄清楚并正确发送),但是,电子邮件正文中使用的图像没有被发送。图片位于:priv/static/images。

在我使用的电子邮件正文中:

src="<%= Routes.static_url(@conn, "/images/logo-default.png") %>"

这适用于开发模式。发送到localhost:4000/sent-emails 的电子邮件会与图像一起呈现。但是在生产中,发送的电子邮件在没有它们的情况下到达邮箱。

如果我查找 localhost:4001/images/logo-default.png(在本地运行)或在 Heroku 中查找 https://agile-fortress-72183.herokuapp.com/images/logo-default.png,我可以看到图像。无论哪种方式,他们都没有通过电子邮件提供图片。

我没有使用 Phoenix buildpack,因为我想要提供的唯一文件是这些图像作为电子邮件 HTML 正文的一部分。

[更新]

经过一段时间的研究,我注意到电子邮件客户端阻止了图像。那么,我如何发送带有图像的 html 正文电子邮件,例如时事通讯上的那些。我正在使用Bamboo 适配器和Mailgun 发送电子邮件。

有解决这个问题的办法吗?

【问题讨论】:

  • - 你能提供收到的电子邮件 HTML 代码的一部分吗?
  • - 您确定图片没有加载是因为您的电子邮件客户端阻止了它吗?
  • @TheSquad 过了一会儿,我注意到可能是电子邮件客户端阻止了您所说的图像。我将更新我的问题。

标签: elixir phoenix-framework


【解决方案1】:

很遗憾,因为电子邮件客户端是决策点,所以您无能为力。最好的办法是让收件人将您的电子邮件地址列入白名单。

【讨论】:

  • 我得出的结论是,在某些电子邮件客户端中,默认情况下会阻止图像,但默认情况下会加载其他图像。所以,你是对的,我无能为力,这取决于使用的电子邮件客户端。
猜你喜欢
  • 2017-08-11
  • 1970-01-01
  • 2016-10-11
  • 2017-04-11
  • 1970-01-01
  • 1970-01-01
  • 2020-12-05
  • 1970-01-01
  • 2018-06-25
相关资源
最近更新 更多