Jestem w trakcie pisania prostej aplikacji konsolowej, która monitoruje konkretną skrzynkę pocztową wymiany, a po otrzymaniu wiadomości e-mail spełniających określone kryteria aplikacja pobiera plik XML i zarchiwizuj email.Exchange Web Services - Przetwarzanie wiadomości i uzyskiwanie dostępu do załączników
Połączyłem się z EWS OK, i byłem w stanie przechodzić przez wszystkie wiadomości e-mail, ale walczę, jeśli chodzi o stworzenie obiektu EmailMessage, którego mogę użyć, aby uzyskać dostęp do załączników.
W poniższym przykładowym kodzie linia EmailMessage message = EmailMessage.Bind(...)
jest wykonywana bez błędu, ale nie zwraca poprawnego komunikatu, więc gdy uzyskuję dostęp i właściwości lub metody, pojawia się błąd: "Odwołanie do obiektu nie jest ustawione na wystąpienie obiektu ".
Jestem nowym C# mówiąc EWS więc jestem stara się wiedzieć, gdzie zacząć ...
Code Snippet:
public static void FindItems()
{
try
{
ItemView view = new ItemView(10);
view.OrderBy.Add(ItemSchema.DateTimeReceived, SortDirection.Ascending);
view.PropertySet = new PropertySet(
BasePropertySet.IdOnly,
ItemSchema.Subject,
ItemSchema.DateTimeReceived);
findResults = service.FindItems(
WellKnownFolderName.Inbox,
new SearchFilter.SearchFilterCollection(
LogicalOperator.Or,
new SearchFilter.ContainsSubstring(ItemSchema.Subject, "Sales Enquiry")),
view);
log2.LogInfo("Total number of items found: " + findResults.TotalCount.ToString());
foreach (Item item in findResults)
{
log2.LogInfo(item.Id);
EmailMessage message = EmailMessage.Bind(service, item.Id, new PropertySet(BasePropertySet.IdOnly, ItemSchema.Attachments));
Console.WriteLine(message.Subject.ToString());
if (message.HasAttachments && message.Attachments[0] is FileAttachment)
{
FileAttachment fileAttachment = message.Attachments[0] as FileAttachment;
fileAttachment.Load("C:\\temp\\" + fileAttachment.Name);
fileAttachment.Load();
Console.WriteLine("FileName: " + fileAttachment.FileName);
}
}
}
catch (Exception ex)
{
log2.LogError(ex.InnerException);
}
}
Mój kod dostępu do załączników jest prosto z MSDN więc mam nadzieję, że są w pobliżu ... Jakieś pomysły?
Nie sądzę, że będziesz w stanie wydrukować wiersz tematu, ponieważ zestaw nieruchomości nie zawiera tematu. Czego zwracasz z Exchange tym kodem? Czy obiekt wiadomości e-mail jest prawidłowy? Następujące może pomóc: http: //social.technet.microsoft.com/Forums/en/exchangesvrdevelopment/thread/1d7d0be3-1e48-43c4-b2df-f6fa5c7bf254 Nie trzeba pętli elementu do wiązania - wypróbuj LoadPropertiesForItems i sprawdź, czy to działa – Chris