C# 如何保持电子邮件对话在一起。MVC网站

C# 如何保持电子邮件对话在一起。MVC网站,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我正在开发票务系统,工作人员可以使用smtp向客户发送电子邮件,当客户回复时,我使用imap获取电子邮件并将其添加回票务 现在我在主题行中添加ticketid,所以当收到电子邮件时,我可以将其附加到现有的ticket中 但有时,客户会删除主题行和回复,从而创建新的票据 有人能给我出个主意吗。我认为Zendesk在电子邮件地址中添加了ticketid,但不确定这是否有效。大多数系统在回复中都有注释,告诉客户不要编辑主题行。 但是,如果他们删除了主题,您可以改为搜索电子邮件内容(如果他们在之前的回复

我正在开发票务系统,工作人员可以使用smtp向客户发送电子邮件,当客户回复时,我使用imap获取电子邮件并将其添加回票务

现在我在主题行中添加ticketid,所以当收到电子邮件时,我可以将其附加到现有的ticket中

但有时,客户会删除主题行和回复,从而创建新的票据


有人能给我出个主意吗。我认为Zendesk在电子邮件地址中添加了ticketid,但不确定这是否有效。

大多数系统在回复中都有注释,告诉客户不要编辑主题行。
但是,如果他们删除了主题,您可以改为搜索电子邮件内容(如果他们在之前的回复中包含主题行的信息),如果您想限制,可以搜索前200行,使用正则表达式模式匹配主题行文本字符串并从中提取票证号。

将票证ID嵌入所有主题、邮件ID和正文中,并在主题、引用字段和回复正文中查找

如果您想格外小心和/或有许多Outlook用户作为客户,您甚至可以将其嵌入到线程索引中,这将使Outlook以必要的详细信息作出响应。线程索引通常有160位熵的空间,您可以嵌入一个票证ID,但仍有>100位剩余。详细描述了格式

例如:

To: customer@example.com
From: support@example.net
Subject: Blah blah [Ticket 34112]
Message-ID: <ticket-34112-7582349573489@example.net>
Thread-Index: 4242034112E0OYfxS/­CjgSLFGePpiQAdZqFQACzEh/­AAmOpSkA==

This relates to ticket 34112; please keep this line in your reply.

Blah.
至:customer@example.com
发件人:support@example.net
主题:胡说八道[门票34112]
消息ID:
螺纹索引:4242034112E0OYfxS/-CjgSLFGePpiQAdZqFQACzEh/-AAmOpSkA==
这与34112号机票有关;请在答复中保留这一行。
废话。

如果你得到一个以424242开头的线程索引,接下来的六位数字就是问题所在,如果你得到一个包含ticket-34112的引用行,你就知道问题编号,等等。

只是一个想法!如果“收件人”地址是唯一的,并且具有此Id,该怎么办?请查看来自github的电子邮件。您能给我举个例子吗please@coder771因此,客户收到机票更新并通过电子邮件收到通知,发送更新的电子邮件帐户不是
NiceName@email.com
,但
10d81189-2de4-4684-acc7-1717041866b5@email.com
,其中
10d81189-2de4-4684-acc7-1717041866b5
是一个
guid
,您可以将其用作票证的ID。当我的系统从地址发送电子邮件时,地址为10d81189-2de4-4684-acc7-1717041866b5@email.com. 因此,当客户回复时,将如何将其发送到我们的邮箱?请配置您的电子邮件服务器以支持一个包含所有内容的邮箱-*@sample.com