Я получаю электронные письма из папки «Входящие» Outlook для отображения на экране поиска электронной почты на основе фильтров (Отправитель, Тема, Сообщение).
Я могу получить все, кроме тела электронного письма. mail:
OutlookRepository.cs:
public FindItemsResults<Item> GetEmails(string loginUsuario, string de, string assunto, string conteudo, WellKnownFolderName pasta = WellKnownFolderName.Inbox)
{
ExchangeService service = GetExchangeService(loginUsuario);
var inbox = Folder.Bind(service, WellKnownFolderName.Inbox);
SearchFilter sf = null;
// Search by Sender
if (!string.IsNullOrWhiteSpace(de))
sf = new SearchFilter.SearchFilterCollection(LogicalOperator.And, new SearchFilter.ContainsSubstring(EmailMessageSchema.From, de));
// Search by Subject
if (!string.IsNullOrWhiteSpace(assunto))
sf = new SearchFilter.SearchFilterCollection(LogicalOperator.Or, new SearchFilter.ContainsSubstring(EmailMessageSchema.Subject, assunto));
// Search by Body
if (!string.IsNullOrWhiteSpace(conteudo))
sf = new SearchFilter.SearchFilterCollection(LogicalOperator.Or, new SearchFilter.ContainsSubstring(EmailMessageSchema.Body, conteudo));
var view = new ItemView(100);
var emails = service.FindItems(pasta, sf, view);
return emails;
}
При возврате «электронных писем» Body выдает исключение: Body = '(new System.Linq. SystemCore_EnumerableDebugView (электронная почта) .Items [0]). Тело »сгенерировало исключение типа« Microsoft.Exchange.WebServices.Data.ServiceObjectPropertyException »
EmailController.cs:
public JsonResult PesquisarEmails(string de, string assunto, string conteudo)
{
FindItemsResults<Item> emails = ServiceFactory.GetService<IComunicacaoService>(true).RecuperarEmails(UsuarioAutenticado.Funcionario.Login, de, assunto, conteudo);
var lista = new List<EmailFormatado>();
foreach (Item email in emails)
{
lista.Add(new EmailFormatado()
{
DataEmail = email.DateTimeReceived.FormatarDataCompleta(),
Remetente = (email as EmailMessage).From.Address,
AssuntoEmail = email.Subject,
Descricao = email.TextBody
});
}
return Json(lista, JsonRequestBehavior.AllowGet);
}
Попытка использовать "email.TextBody" и "email.Body", но она вызывает исключение: email.TextBody = 'email.TextBody' вызвала исключение типа 'Microsoft.Exchange.WebServices .Data.ServiceObjectPropertyException '
Любая помощь?