Чтение содержимого почтового сообщения в Outlook Addin VSTO - PullRequest
0 голосов
/ 11 мая 2018

Я разрабатываю надстройку для Outlook, используя VSTO, которая проверяет орфографию содержимого почты при создании. В ответных письмах, как я могу проверить только содержимое ответа, исключив старый разговор? Это то, что я делаю сейчас. Но мне нужно знать, существует ли какой-либо подходящий объект или метод для получения текущего содержимого ответа.

Outlook.MailItem mailItem = inspector.CurrentItem as Outlook.MailItem;
                string temp = mailItem.Body;
                int target= temp.IndexOf("\r\nFrom:");
                string contentToCheck= temp.Substring(0, target);

FYI

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Найдите закладку с именем "_MailOriginal". Сценарий ниже вставляет текст непосредственно перед началом исходного сообщения:

set objDoc = Application.ActiveInspector.WordEditor
If objDoc.Bookmarks.Exists("_MailOriginal") Then
  ' is there the original email? (_MailOriginal)
  set objBkm = objDoc.Bookmarks("_MailOriginal")
  Set objSel = objDoc.Application.Selection
  objSel.Start = objBkm.Start-2 'give room for the line break before. It includes the line
  objSel.End = objSel.Start
  objSel.Text = "test"
End If
0 голосов
/ 11 мая 2018

Нет встроенного свойства, которое обозначает конец нового сообщения и начало ответа в тексте.

Что можно сделать, это сохранить общий текст, который отмечает конец нового сообщения, ипроверьте это при чтении тела.Такие вещи, как 'ОТ:', 'С уважением,' 'Спасибо,' ...

Что-то похожее на:

while ((line = bodytext.ReadLine()) != null)
{
    foreach(string ending in MYLISTOFCOMMONENDINGS)
                     {
                         if (line.StartsWith(ending))
                             return sb.ToString();  //we are done
//here sb is a string builder consuming new lines
                     }
        //read the line and check spelling
} 
...