为工单实现“通过电子邮件回复”

本文关键字:电子邮件 回复 单实现 实现 | 更新日期: 2023-09-27 18:37:19

我将开发一个带有 c# 的票务系统,该系统应在提交票证时向接收者发送一封包含工单内容的电子邮件,并且接收者应该能够回复该电子邮件,从而导致发件人收到回复的电子邮件。令我困惑的是,我将如何跟踪接收者回复的特定票证。我不是在寻找任何代码,只是在寻找概念或最佳实践。

为工单实现“通过电子邮件回复”

理论上,您可以将Message-IDIn-Reply-To 结合使用,如 RFC 5322 中所述:

"消息 ID:"字段提供了一个唯一的消息标识符,该标识符指特定消息的特定版本。 这消息标识符的唯一性由主机保证生成它(见下文)。 此消息标识符旨在机器可读,对人类不一定有意义。 一条消息标识符仅与特定消息的一个版本有关;消息的后续修订每个都会收到新消息标识符。

"

回复:"和"引用:"字段在以下情况下使用创建对邮件的答复。它们保存的消息标识符为原始消息和其他消息的消息标识符(例如,在回复消息的情况下,该消息本身是回复)。"回复:"字段可用于标识邮件(或消息),新消息是回复,而"引用:"字段可用于标识谈话。

创建邮件回复时,"回复:"和"引用:"结果消息的字段构造为遵循:

"回复:"字段将包含"消息 ID:"字段,该消息是回复的消息("家长消息")。如果有多个父消息,则"回复:"字段将包含所有家长的内容"消息 ID:"字段。如果任何父消息,则新消息将没有"正在回复:"田。

当然,您应该在单独的数据库表中跟踪Message-ID字段和内部票证号之间的映射。

  1. 从 yourCompany.com 发送新的电子邮件 E1。

  2. 收到来自 yahoo.com 的回复 R1。邮件头信息:

     References:
         <11111@yourCompany.com>
     Message-ID:
         <22222@webServer.yahoo.com>
     In-Reply-To:
         <11111@yourCompany.com>
    
  3. yourCompany.com 发送到 R1 的回复 R2。

  4. 从 yahoo.com 收到对 R2 的答复 R3。邮件头信息:

     References: 
         <11111@yourCompany.com>
         <22222@webServer.yahoo.com>
         <33333@yourCompany.com>
     Message-ID: 
         <44444@webServer.yahoo.com>
     In-Reply-To: 
         <33333@yourCompany.com>
    

我认为做到这一点的唯一方法(我从未见过这样做的票务系统)是将ID添加到主题行中。

在我们的例子中,我们有像"bla bla bla bla <<<CALLID:12312>>>"这样的主题标题。使用正则表达式,这很容易捕获

以应用程序可以理解的特定格式将票证保留在主题中。

例如 Subject can be Close TICKET T1Reject Resolution TICKET T1 .

您可以要求客户在邮件正文中指定原因。

诀窍是给出您理解的预先格式化的主题。