【问题标题】:implementing "Reply this by email" for a ticket为工单实施“通过电子邮件回复”
【发布时间】:2013-10-29 07:59:16
【问题描述】:

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

【问题讨论】:

    标签: c# email ticket-system


    【解决方案1】:

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

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

    “In-Reply-To:” 和“References:”字段在以下情况下使用 创建对消息的回复。 他们持有的消息标识符 原始消息和其他消息的消息标识符 (例如,在对本身是 回复)。 “In-Reply-To:”字段可用于识别邮件 (或消息)作为新消息的回复,而 “References:”字段可用于标识一个“线程”的 对话。

    创建对消息的回复时,“In-Reply-To:”和 结果消息的“参考:”字段构造为 如下:

    “In-Reply-To:”字段将包含 "Message-ID:" 回复此消息的字段( “父消息”)。如果有多个父消息,则 “In-Reply-To:”字段将包含所有父母的内容 “消息 ID:”字段。如果任何一个中没有“Message-ID:”字段 父消息,则新消息将没有“In-Reply-To:” 字段。

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

    示例

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

    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 收到 R3 对 R2 的回复。消息头信息:

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

    【讨论】:

    • 通常,投反对票的理由是建设性的。
    • 嘿,亚历克斯,我没有对你投反对票,我对你投了赞成票,你的解决方案很有意义。非常感谢:)
    • Alex 我想不通的是,当我使用第一条消息创建票证时,将发送电子邮件,我尝试添加 X-tkt-Id 作为我的自定义标头,但是因为似乎大多数服务器都会忽略自定义标头,并且听起来很有趣,我正在使用的邮件服务器不会将那些已发送的电子邮件存储在已发送的框中。所以基本上我无法得到第一封电子邮件的消息ID......可能我在这里遗漏了一些东西。你能帮忙吗?谢谢
    • 再次感谢亚历克斯的回答,虽然我在想同样的事情,但你的回答让我明白了,尽管我必须找到一种方法来使用它的第一封电子邮件message id,因为由于某种原因,此邮件服务器不存储通过我的应用程序发送的电子邮件。
    【解决方案2】:

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

    在我们的例子中,我们有像“bla bla bla >>”这样的主题标题。 使用正则表达式,这很容易掌握

    【讨论】:

      【解决方案3】:

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

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

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

      诀窍是提供您理解的预先格式化的主题。

      【讨论】:

      • 所以用户可以编辑主题中的工单ID来回复其他用户之前的工单? :)
      猜你喜欢
      • 2011-11-01
      • 2010-09-19
      • 2017-12-19
      • 1970-01-01
      • 2011-07-12
      • 2016-07-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多