Exchange EWS не может читать электронные письма - PullRequest
0 голосов
/ 02 декабря 2018

У меня ошибка при попытке объявить новый общий адрес электронной почты ...

Объяснение:

Я разрабатываю службу Windows для получения общих сообщений электронной почты с использованием exchange EWS c # исохранить его содержимое в БД, а также его вложения и квитанции ... и т. д.

как следующий код

public void GetSPCallCenterEmails()
    {
        try
        {
              ExchangeService service = new ExchangeService();
                EmailApprovalRequestBLL EmailApprovalRequest = new EmailApprovalRequestBLL();
                string SPUserName ="UserName";
                string SPPassword ="Password"
                string SPDomain ="LocalDomain";
                int EmailsToGetCount =50;
                string SPEmail ="sharedemail@companyLocalDomain.com";
                string RequestAttachPath ="Path";
                service.Credentials = new WebCredentials(SPUserName, SPPassword, SPDomain);
                ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
                service.Url = new Uri("https://CASURL/EWS/Exchange.asmx");
                service.UseDefaultCredentials = false;
                EmailApprovalRequest.GetNewEmails(service, SPEmail, RequestAttachPath, EmailsToGetCount);

        }
        catch (Exception ex)
        {
            ExceptionHandlerConstants.CreateException(ex, "Service1.cs", "GetSPCallCenterEmails", "Front Service");
        }
    }

===============================================================================

    public bool GetNewEmails(ExchangeService service, string EmailToGetMails, string SaveAttachmentPath, int EmailsToGetCount)
    {
        try
        {
            List<EmailMessage> UnReadMessages = new List<EmailMessage>();
            var IsNewEmails = EmailingService.GetSpecificSharedMailMessages(EmailToGetMails, service, EmailsToGetCount, out UnReadMessages);
            if (IsNewEmails)
            {
                //Handle New Emails
                return true;
            }
            else
            {
                return false;
            }
        }
        catch (Exception ex)
        {
            ExceptionHandlerConstants.CreateException(ex, "EmailApprovalRequestBLL", "GetNewEmails", "GetNewEmails_BLL");
            return false;
        }
    }

================================================================================

    public static bool GetSpecificSharedMailMessages(string EmailAddress,ExchangeService service, int EmailsToGetCount,out List<EmailMessage> NewMessages)
    {
        try
        {
            FolderId SharedMailbox = new FolderId(WellKnownFolderName.Inbox, EmailAddress);
            ItemView itemView = new ItemView(EmailsToGetCount);
            var Emails = service.FindItems(SharedMailbox, itemView);

            List<EmailMessage> FinalEmailsList = new List<EmailMessage>();
            foreach (EmailMessage msg in Emails)
            {
                //Retrieve Additional data for Email

                EmailMessage message = EmailMessage.Bind(service,(EmailMessage.Bind(service, msg.Id)).Id,new PropertySet(BasePropertySet.FirstClassProperties,new ExtendedPropertyDefinition(0x1013, MapiPropertyType.Binary)));
                FinalEmailsList.Add(message);
            }

            //Get UnRead Messages Only

            FinalEmailsList = FinalEmailsList.ToList();

            if (FinalEmailsList.Count>0)
            {
                NewMessages = FinalEmailsList;
                return true;
            }
            else
            {
                NewMessages = null;
                return false;
            }

        }
        catch (Exception ex)
        {
            ExceptionHandlerConstants.CreateException(ex, "EmailingService", "GetSpecificSharedMailMessages", "GetSpecificSharedMailMessages_EmailingService");
            NewMessages = null;
            return false;
        }
    }

=================================================

Ошибка: Исключение: --------- System.ArgumentNullException: значение не может быть нулевым.Имя параметра: s в System.Convert.FromBase64String (String s) в Microsoft.Exchange.WebServices.Data.MapiTypeConverter. <. Cctor> b__14 (String s)

Примечание: эта строка генерирует ошибку «FolderId SharedMailbox»= новый FolderId (WellKnownFolderName.Inbox, EmailAddress); "

**** Примечание 2: эта служба генерирует эту ошибку на Windows Server 2012 r2 и не создает эту проблему на Windows 10 ****

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...