为工单实现“通过电子邮件回复”
本文关键字:电子邮件 回复 单实现 实现 | 更新日期: 2023-09-27 18:37:19
我将开发一个带有 c# 的票务系统,该系统应在提交票证时向接收者发送一封包含工单内容的电子邮件,并且接收者应该能够回复该电子邮件,从而导致发件人收到回复的电子邮件。令我困惑的是,我将如何跟踪接收者回复的特定票证。我不是在寻找任何代码,只是在寻找概念或最佳实践。
理论上,您可以将Message-ID
与 In-Reply-To
结合使用,如 RFC 5322 中所述:
"消息 ID:"字段提供了一个唯一的消息标识符,该标识符指特定消息的特定版本。 这消息标识符的唯一性由主机保证生成它(见下文)。 此消息标识符旨在机器可读,对人类不一定有意义。 一条消息标识符仅与特定消息的一个版本有关;消息的后续修订每个都会收到新消息标识符。
"回复:"和"引用:"字段在以下情况下使用创建对邮件的答复。它们保存的消息标识符为原始消息和其他消息的消息标识符(例如,在回复消息的情况下,该消息本身是回复)。"回复:"字段可用于标识邮件(或消息),新消息是回复,而"引用:"字段可用于标识谈话。
创建邮件回复时,"回复:"和"引用:"结果消息的字段构造为遵循:
"回复:"字段将包含"消息 ID:"字段,该消息是回复的消息("家长消息")。如果有多个父消息,则"回复:"字段将包含所有家长的内容"消息 ID:"字段。如果任何父消息,则新消息将没有"正在回复:"田。
当然,您应该在单独的数据库表中跟踪Message-ID
字段和内部票证号之间的映射。
例
-
从 yourCompany.com 发送新的电子邮件 E1。
-
收到来自 yahoo.com 的回复 R1。邮件头信息:
References: <11111@yourCompany.com> Message-ID: <22222@webServer.yahoo.com> In-Reply-To: <11111@yourCompany.com>
从 yourCompany.com 发送到 R1 的回复 R2。
从 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 T1
或 Reject Resolution TICKET T1
.
您可以要求客户在邮件正文中指定原因。
诀窍是给出您理解的预先格式化的主题。