为票证实施“通过电子邮件回复”

时间:2013-10-29 07:59:17

标签: c# email ticket-system

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

3 个答案:

答案 0 :(得分:6)

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

  

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

     

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

     

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

     

“In-Reply-To:”字段将包含该内容   消息的“消息ID:”字段,这是一个回复(   “父母留言”)。如果有多个父消息,那么   “In-Reply-To:”字段将包含所有父母的内容   “消息ID:”字段。如果任何一个中没有“Message-ID:”字段   父消息,然后新消息将没有“In-Reply-To:”   字段。

当然,您应该在单独的数据库表中跟踪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的回复R2到R1。
  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>
    

答案 1 :(得分:0)

我认为实现这一目标的唯一方法(我从未见过以不同方式执行此操作的票务系统)将ID添加到主题行中。

在我们的案例中,我们有像“bla bla bla&lt;&lt;&lt;&lt; CALLID:12312&gt;&gt;&gt;”这样的主题标题。 使用正则表达式,这很容易捕获

答案 2 :(得分:-1)

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

e.g。 Subject can be Close TICKET T1或      Reject Resolution TICKET T1

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

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