Есть ли способ определить, является ли электронная почта ответом / ответом, используя 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