error de inicio de sesión de c # ews

Resumen: necesito iniciar sesión en mi buzón de correo usando EWS y sigo recibiendo el error 440/401.

pregunta: ¿Algo obvio en mi código sobre por qué sigo recibiendo errores 401 o 440?

Código:

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using Microsoft.Exchange.WebServices;
using Microsoft.Exchange.WebServices.Data;
using Microsoft.Exchange.WebServices.Autodiscover;


namespace MailboxListenerEWS
{
    class Program
    {
        //Authentication to exchange 2007 with webdav and filebasedauth (FBA) in C#
        //can hardcode a username to connect a mailbox with
        internal static string dUser = "username";//username to log into email account
        internal static string dDomain = "domain";//domain of username used
        internal static string dPassword = "Password";//password of username used
        internal static string MailBoxAliasName = "mailboxname";//mailbox to authenticate too
        internal static string ExchangeServerName = "exchangeName"; //not always needed
        internal static string ReadAttachments = "0"; //1 means read attachments, 0 means dont
        internal static string MailBoxEarliestDateToRead = "2011-01-05T00:00:00.000Z";//date of emails to read from



        static void Main(string[] args)
        {
            //Connect to server
            //ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
            ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
            //service.Credentials = new NetworkCredential("name", "pwd", "domain");
            service.Credentials = new NetworkCredential("dUser", "dPassword", "dDomain");

            //log in to mailbox
            try
            {
                //service.Url = new Uri(serviceurl);
                //Console.WriteLine(serviceurl);
                //service.AutodiscoverUrl(MailBoxAliasName);
                service.Url = new Uri("https://" + ExchangeServerName + "/EWS/" + MailBoxAliasName + "/inbox");
            }
            catch (AutodiscoverRemoteException ex)
            {
                Console.WriteLine("Exception thrown: " + ex.Error.Message);
                Console.ReadLine();
            }


            //List folders
            try
            {
                //Listing all the subfolders of the Inbox
                FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, new ItemView(int.MaxValue));
                foreach (Item item in findResults)
                {
                    Console.WriteLine(item.Subject);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception thrown: " + ex.Message);
                Console.ReadLine();
            }


        }
    }
}

preguntado el 16 de mayo de 11 a las 19:05

1 Respuestas

¿Está seguro de que su servidor utiliza 2007 SP1? Además, si no está seguro de la URL correcta, intente utilizar Detección automática, donde "usuario@dominio.com" es una dirección de correo electrónico real en su dominio.

service.AutodiscoverUrl("user@domain.com");

Además, está configurando su URL igual a una URi. No creo que eso sea legal; ¿siquiera está compilando?

Aquí hay un código de muestra que utilicé como punto de partida cuando implementé algo similar: codeproject.com

contestado el 17 de mayo de 11 a las 00:05

Está usando el Service Pack 2, pero ExchangeVersion.Exchange2007_SP2 apareció como un error. Intentaré volver al método de detección automática, la razón por la que no lo usé es porque se quedó colgado por un tiempo. - toosweetnitemare

también la detección automática me da el error "No se pudo localizar el servicio de detección automática". - toosweetnitemare

vea mi nuevo comentario / pregunta sobre URL / URi. - WEFX

está rompiendo en la sección de búsqueda de elementos. Entonces, ¿cuál debería ser mi URL? - toosweetnitemare

Configurando el Url propiedad a una nueva Uri funciona bien. Incluso el código de muestra en codeproject.com al que se refirió tiene este código. Aparte de eso, no tengo problemas con tu respuesta :) - Halvard

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.