2014-09-01 1 views
0

Я использую EWS для чтения части тела электронной почты отдельно от электронной почты входящих сообщений.Как читать последние сообщения по электронной почте HTML-код из определенного электронного письма с помощью Microsoft Exchange webservice

Мне нужно извлечь только ответное тело электронной почты, а не целое тело электронной почты.

например.

************ 
A This is good tenant. 

Regards, 
Test 

From:[email protected] 
To: ---- 
---------- 
---------- 

Hi User, Data has been populated. Please reply with A or R with comments. 

Regard 
Admin. 

************ 

Поэтому, когда я читаю электронную почту по электронной почте выше, я получаю все упомянутое выше тело. Но мне нужно только то, что мне нужно:

************ 
A This is good tenant. 

Regards, 
Test 
************ 

который имеет последний ответ электронной почты только тело.

+0

Я не думаю, что у EWS есть API для извлечения только нового текста в последнем ответе. Вероятно, вы могли бы получить довольно много, если работаете в предыдущем сообщении в чате, хотя (http://msdn.microsoft.com/en-us/library/office/dn610351(v=exchg.150).aspx). В качестве альтернативы вы можете посмотреть на обычный код/​​библиотеки .NET (не относящиеся к EWS), которые идентифицируют и разделяют все после части «From:». Вы уже что-то пробовали? –

+0

Привет, Франк, спасибо. Я попробовал UniqueBody, чтобы читать по электронной почте, который будет возвращен - уникальный орган из целого тела электронной почты, если null, тогда весь объект как retur. 1. Даже я пробовал использовать Чтение электронных разговоров определенного электронного письма. Для каждого письма мы можем читать разговоры. и для каждого разговора по электронной почте у нас будет указатель. Итак, предположим, что нижеподписано электронное письмо с электронной почтой по электронной почте для утверждения/отклонения данных. **************** A Это хороший арендатор. С уважением, Тестовые От: [email protected] ............. ............. Уважаемый пользователь, данные создали , С уважением, Администратор ***************** –

+0

1. так, когда мы читаем тело разговора [0] --Полное большинство/последних - мы получим ниже как тело ***************** A Это хороший арендатор. С уважением, Тестовые От: [email protected]om ............. ............. Уважаемый пользователь, данные создали , С уважением, Администратор ********************** 2. и когда мы читаем тело разговора [1] - мы получим ниже как body ********************** Уважаемый пользователь, ваше досье создано. С уважением, CMA********************** –

ответ

1

Этот подход с UniqueBody работает для меня:

// ensure that username, password, domain and smtpAddress are set 
var service = new ExchangeService { 
    PreAuthenticate = true, 
    Credentials = new WebCredentials(username, password, domain), 
}; 
service.AutodiscoverUrl(smtpAddress, redirect => true); 

service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, smtpAddress); 
var inbox = Folder.Bind(service, new FolderId(WellKnownFolderName.Inbox)); 
var fir = inbox.FindItems(new ItemView(10)); 
foreach (var ir in fir) { 
    var msg = EmailMessage.Bind(service, ir.Id, new PropertySet(EmailMessageSchema.UniqueBody)); 
    Console.WriteLine(msg.UniqueBody.Text); 
} 

Для любого последующего сообщения в результатах, то msg.UniqueBody.Text свойства содержит только те части, которые являются новыми в этом сообщении.

Обратите внимание, что могут быть лучшие способы сделать это, но это работает в моем быстром тесте (против Exchange Online).

+0

Привет, Франк, я уже пробовал это. Не могли бы вы попробуйте ниже. –

+0

Оригинальное сообщение содержит ниже тела 'Привет пользователя С уважением, admin' ---------- Ответить на это сообщение, как показано ниже. 'Hi' –

+0

Как я уже говорил, этот код работает в Exchange Online, где я его тестировал. Если это не сработает для вас, ** вы должны будете предоставить мне способ воспроизвести вашу ситуацию. Вы можете сделать это, отредактировав свой вопрос и предоставив ** свой ** минимальный код, который вы используете для воспроизведения проблемы. –

Смежные вопросы