Есть ли способ определить, является ли электронная почта ответом / ответом, используя ews C#?

Я пишу систему поддержки, и я впервые использую EWS. До сих пор я был довольно успешным с этим. Я могу извлечь информацию, которая мне нужна. Отправь emaisl и все работает отлично. У меня одна маленькая головная боль. Есть ли способ узнать, является ли электронная почта действительно ответом? Основная идея приложения заключается в том, что кто-то отправляет электронное письмо. Мы отвечаем и даем им ссылочный номер. Это сделано и работает отлично. Теперь, если они ответят на один и тот же адрес, мы должны зарегистрировать его немного в нашей базе данных. поэтому мне нужен какой-то волшебный способ узнать, является ли электронная почта ответом. Пока я застрял.

Любые предложения будут высоко оценены, так как я новичок в индустрии программирования, и пока поиск в Google не принес ничего полезного. Я включаю раздел кода здесь

 FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, view);

        foreach (Item myItem in findResults.Items.Where(i => i is EmailMessage))
        {
            var mailItem = myItem as EmailMessage;
            if (!mailItem.IsRead)
            {
                // load primary properties and get a text body type
                mailItem.Load(propertySet);
                // Update the item to isRead in email
                mailItem.IsRead = true;
                mailItem.Update(ConflictResolutionMode.AutoResolve);

                //Check if it is a reply and mark the msg as such

                // add message to list
                SupportEmailMessage msg = new SupportEmailMessage();
                msg.Subject = mailItem.Subject;
                msg.MessageBody = mailItem.Body.Text;
                msg.DateSent = mailItem.DateTimeSent;
                msg.Sender = mailItem.Sender.Address;
                toReturnList.Add(msg);
            }

        }

2 ответа

Решение

Хорошо. Так из комментариев. Кажется, что на самом деле нет окончательного пути. Комментарии людей помогли мне получить этот ответ и закрыть эту ветку. Я перефразирую и выложу здесь. Итак, во-первых. Спасибо за все ваши ответы.

Самый простой способ - включить хороший ссылочный номер в ваш предмет. Таких как "Supp-1234"

Теперь в коде мы можем проверить этот ссылочный номер в заголовке. Если это там. Это скорее всего ответ. Проверка на RE также возможна, но несколько менее эффективна. Облом является то, что клиенты могут удалить ссылочный номер /RE из предметного заголовка. Для тех парней. Бедный ты, твоя проблема не будет зарегистрирована. или ты знаешь. делай что угодно.:)

Еще раз спасибо всем ответам. Вы, ребята, действительно мне очень помогли!

InReplyTo - это строковое значение, которое содержит идентификатор элемента, на который это сообщение является ответом. Если это ноль, то сообщение не является ответом.

var mailItem = myItem as EmailMessage;
if (mailItem.InReplyTo != null)
{
   // this is a reply message
   .
   .
   .
}

Дополнительная информация: MSDN InReplyTo

Другие вопросы по тегам