Estoy tratando de utilizar el siguiente código para conectar y descargar un archivo adjunto del correo electrónico en una bandeja de entrada usando C# y Servicios web de Exchange pero obtengo un error 'System.ArgumentOutOfRangeException' y no puedo ver por qué. He buscado una respuesta en Google, pero no puedo encontrar una o las respuestas que encuentro son para versiones muy antiguas de EWS.Descargar archivo adjunto de Exchange utilizando servicios web de Exchange
Sé que el resto del código generalmente funciona ya que puedo acceder a otra información relacionada con el correo electrónico, simplemente no tengo acceso al archivo adjunto.
Cany alguien me muestra el error de mis formas?
Gracias de antemano,
James
static void Main(string[] args)
{
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.Credentials = new NetworkCredential("MYLOGIN", "MYPASSWORD", "MYDOMAIN");
service.Url = new Uri("https://MYMAILSERVER/EWS/Exchange.asmx");
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, new ItemView(1000));
foreach (Item item in findResults.Items)
{
if (item.HasAttachments && item.Attachments[0] is FileAttachment)
{
FileAttachment fileAttachment = item.Attachments[0] as FileAttachment;
fileAttachment.Load("C:\\temp\\" + fileAttachment.Name);
}
}
}
}
Resuelto pero nuevo problema
He ordenado la cuestión ahora cambiando el 'foreach (artículo en findResults.Items)' para 'foreach (elemento de EmailMessage en findResults.Items)' pero ahora necesito saber cómo enumerar a través de los archivos adjuntos - ¿Alguna idea de alguien?
¿Dónde se obtiene la excepción? ¿Qué argumento está fuera de rango? Esa información es normalmente parte de la excepción. –
fue un error de falta de índice. He resuelto el problema ahora cambiando el 'foreach (Elemento item en findResults.Items)' a 'foreach (Elemento EmailMessage en findResults.Items)' –
La parte "InnerException" de la Excepción puede valer la pena para obtener ese tipo de información de información también –