我怎样才能更改 URL 中的图像并仍然确保发送的旧电子邮件不受影响?

How can I change Image in the URL and still make sure old emails that are sent is not affected?

我们的应用程序将针对不同的事件为客户发送电子邮件。这些电子邮件有占位符,我们需要在其中显示促销横幅。营销团队要求我们让它充满活力。这意味着将有一个共同的 url,团队将在每个月每当有新的促销活动时更改 URL 中的图像。

现在我的要求是, 比如 2021 年 12 月 1 日,营销团队更新了一张新图片 URL。

  1. 现在我将在 2021 年 12 月 1 日之后发送的所有电子邮件都应该有这张新图片。

  2. 此外,在 2021 年 12 月 1 日之前(直到 2021 年 11 月 30 日)已经发送给客户的所有电子邮件都不会受到影响,如果客户打开它们,他们应该仍然只能看到旧图像。

(注意:新旧邮件的图像 URL 相同,但只有 URL 中的图像会更改)。我们所有的应用程序都是 .NET 应用程序。

此处为 Twilio SendGrid 开发人员布道师。

正如 Nick 和 Caius 在评论中所说,您无法通过单个 URL 实现这一目标。如果您更改 URL 后面的图像,那么使用该 URL 的旧电子邮件将在打开时更新为新图像。

相反,您应该每次都使用不同的 URL。或者,正如 Caius 指出的那样,嵌入图像 URLs 可能无法加载。因此,您还可以将图像附加到电子邮件中并将其嵌入。 Base 64 嵌入很有用,但它确实会使电子邮件变大,尤其是当它使图像本身变大时。

我个人更喜欢将图像添加为附件,然后通过 CID 或 Content-ID 引用它们将它们嵌入到内容中。有关如何执行此操作的详细信息,请参见 embedding images in emails 上的 post。但想法是你给附件一个 cid 属性,然后在你的 HTML 中引用 img 标签的 src 属性中的 cid:

<img src="cid:myimagecid"/>