Estoy escribiendo una aplicación de consola simple que supervisa un buzón de intercambio en particular y cuando se reciben correos electrónicos que cumplen determinados criterios, la aplicación descarga un archivo adjunto XML y archivar el correo electrónico.Servicios web de Exchange - Procesamiento de mensajes y acceso a archivos adjuntos
Me he conectado a EWS OK, y he podido leer todos los correos electrónicos, pero estoy luchando cuando se trata de crear un objeto EmailMessage que pueda usar para acceder a los archivos adjuntos.
En el código de ejemplo siguiente, la línea EmailMessage message = EmailMessage.Bind(...)
se ejecuta sin error, pero no devuelve un mensaje válido por lo que cuando accedo y propiedades o métodos, aparece un error: 'Referencia de objeto no establecida en una instancia de un objeto '.
Soy nuevo en C# y mucho menos EWS por lo que estoy luchando para saber por dónde empezar ...
Fragmento de código:
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);
}
}
Mi código para acceder a los archivos adjuntos es directamente desde MSDN así que espero que esté allí ... ¿Alguna idea?
No creo que pueda imprimir la línea Asunto ya que su conjunto de propiedades no incluye el tema. ¿Qué devuelve de Exchange con ese código? ¿El objeto emailmessage es válido? El siguiente podría ayudar a: http: //social.technet.microsoft.com/Forums/en/exchangesvrdevelopment/thread/1d7d0be3-1e48-43c4-b2df-f6fa5c7bf254 que no es necesario colocar a través de la opción de unirse - prueba LoadPropertiesForItems y mira si funciona – Chris