我可以使用邮戳创建主题回复吗?

Posted

技术标签:

【中文标题】我可以使用邮戳创建主题回复吗?【英文标题】:Can I Use Postmark to Create Threaded Replies? 【发布时间】:2016-03-09 14:20:41 【问题描述】:

与许多网络应用程序一样,我们使用Postmark 发送服务器端事件的所有通知。我们的许多活动都通过简单而合乎逻辑的方式进行分组和关联(想想对同一问题的多个回复,例如在 GitHub 中)。

现在,为这些相关事件发送的每封电子邮件都是它自己的电子邮件线程。我的问题是:我如何发送这些电子邮件,以便将相关的邮件推送到同一个线程中?

我不确定这是邮戳级别的事情(比如包含以前的邮件 ID)还是我使用 SMTP 做的事情(比如我应该更好地格式化我的主题并内联以前的回复),所以这就是为什么我正在寻求指导。此外,关于“邮戳电子邮件线程”的每次 Google 搜索都会返回对 Ruby Gem 线程安全性的担忧。

有关更多信息,该应用程序是用 php 编写的,现在我们是 znarkus/postmark-php 用于发送电子邮件,jjaffeux/postmark-inbound-php 用于解析入站电子邮件。但是,如果它们对我的任务有帮助,我非常愿意添加任何额外的包。

提前致谢!

【问题讨论】:

【参考方案1】:

您可以添加一些带有原始 Message-ID 的 SMTP 标头,大多数客户端使用这些标头将回复链接在一起。如果原始电子邮件具有<123@mail.example.com>Message-ID 标头,则您发送的新电子邮件应保持主题行相同并添加以下标头:

In-Reply-To: <123@mail.example.com> References: <123@mail.example.com>

并且应该通知客户这两封电子邮件应该被线程化。

编辑:

这些标头的值应该是SMTP Message-ID header,这有点令人困惑,因为它是一个独立于 Postmark MessageID 值的概念,Postmark MessageID 值只是电子邮件的 UUID。

SMTP Message-ID 标头始终采用电子邮件地址的形式,因为它应该是这样形成的,但它必须与发件人地址相关。

【讨论】:

太棒了!这似乎会给我我想要的东西,但我还不能真正测试并证明它,所以我将推迟接受这个作为答案。你说我需要保持主题不变,电子邮件客户端是否会自动添加:“Re:”到线程回复?还是我必须这样做?非常感谢! 如果您要发送回复,则需要添加“Re:”才能显示。使用 Gmail 进行测试,只要它是同一个主题,它仍然会引导 convo。期待看看进展如何! 所以,看起来 Message-ID 是一个 UUID,看起来不错,但在您的 References 示例中,您更改了域。如何将此应用于邮戳?或者我不应该使用 Message-ID UUID 而是使用电子邮件地址?或者你的例子中的123Message-ID,意思是格式是:$UUID@smtp.postmarkapp.com代表In-Reply-To$UUID@smtp.postmarkapp代表References?非常感谢您的帮助! 抱歉,References 标头的更改是一个错字。我编辑了我的答案,希望能解释这是您需要包含在回复标头中的 Message-ID 标头值。

以上是关于我可以使用邮戳创建主题回复吗?的主要内容,如果未能解决你的问题,请参考以下文章

Kafka 主题过滤与微服务请求/回复模式的临时主题

我可以使用回复来区分退回和真实回复吗?

回复/转发/发送时如何在主题中添加特定的附件名称?

你能读到对来自 flash 的 POST 请求的回复正文吗?

Dynamics CRM 2016 不跟踪电子邮件回复

microsoft outlook怎么设置自动回复