0

我想从我的 Outlook 邮箱中获取详细信息,但没有 Microsoft Exchange 服务器。我只有基于云的服务。

我尝试使用下面给出的代码,但这是一个交换服务器 API 解决方案。第二种方法是打开outlook应用然后访问邮箱但不想要这个解决方案。


try
{
       'Mailbox credentials'
       string emailAddress = AppSettings.Office365EmailAddress;
       string password = AppSettings.Office365Password;
    
       ServicePointManager.ServerCertificateValidationCallback = 
       CertificateValidationCallBack;
       ExchangeService service = new 
       ExchangeService(ExchangeVersion.Exchange2013_SP1);
                  
       service.Credentials = new WebCredentials(emailAddress, password);
       service.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx");
       service.PreAuthenticate = true;
       service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, 
       emailAddress);
       ItemView view = new ItemView(int.MaxValue);
       FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, 
       SetFilter(), view);
    
       DataTable dtEmails = GenerateEmailDataTable();
       DataRow dr = dtEmails.NewRow();
                   
       foreach (Item item in findResults.Items)
       {
         if (item.Subject != null)
            {
               Match match = Regex.Match(item.Subject.ToString(), regJMSNumber);
               if (match != null)
                   {
                     dr["EmailTo"] = item.DisplayTo.ToString();
                     dr["EmailFrom"] = item.DisplayTo.ToString();
                     dr["EmailCC"] = item.DisplayCc.ToString();
                     dr["EmailBCC"] = item.DisplayTo.ToString();
                     dr["EmailSubject"] = item.Subject.ToString();
                     dr["EmailBody"] = item.Body.ToString();
                     dr["CreatedOn"] = item.Subject.ToString();
                     dr["IsActive"] = true;
                  }
                  else
                   {
                      Console.WriteLine("Subject Not Match");
                   }
              }
                    }
                }
    
                'Error handler.'
                catch (System.Exception e)
                {
                    Console.WriteLine("{0} Exception caught: ", e);
                }
                finally
                {
                   
                } 

另一种方法是 Power Automate 选项,但我想以编程方式进行。使用https://outlook.office365.com/EWS/Exchange.asmx API。
当我使用 EWS(交换 API)时,应用程序抛出401 Unauthorized requests failed 异常。

请告诉我任何其他方式来跟踪 Outlook 电子邮件的所有详细信息,如EmailToEmailSentEmailSubjectEmailBodyEmailCCEmailBCC和所有尾随消息。

4

0 回答 0