2017-02-10 152 views
0

我正試圖編寫一個程序來讀取交換郵箱。我對c#很陌生,所以如果錯誤太明顯,請原諒。EWS C#錯誤:在當前上下文中不存在

下面的代碼,當我試圖綁定EmailMessage和給我的錯誤失敗 - 「名稱‘身份證’確實沒有存在於當前的背景下

using Microsoft.Exchange.WebServices.Data; 
using System; 
using System.Collections.Generic; 
using System.Configuration; 
using System.IO; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace ResetOraclePassword 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1); 
      service.Credentials = new WebCredentials("[email protected]", "xxxxxxx"); 
      service.TraceEnabled = true; 
      service.TraceFlags = TraceFlags.All; 
      service.AutodiscoverUrl("[email protected]", RedirectionUrlValidationCallback); 
      Folder inbox = Folder.Bind(service, WellKnownFolderName.Inbox); 
      PropertySet propSet = new PropertySet(EmailMessageSchema.InternetMessageHeaders, EmailMessageSchema.Body, EmailMessageSchema.HasAttachments, EmailMessageSchema.Attachments, 
      EmailMessageSchema.Subject, EmailMessageSchema.From, EmailMessageSchema.Sender, EmailMessageSchema.DisplayCc, EmailMessageSchema.DisplayTo, EmailMessageSchema.DateTimeReceived, 
      EmailMessageSchema.InternetMessageId); 
      propSet.RequestedBodyType = BodyType.Text; 

      EmailMessage abc = EmailMessage.Bind(service, id, propSet); 
      Console.WriteLine(abc.Subject); 
      Console.WriteLine(abc.InternetMessageId); 
      Console.WriteLine(abc.DateTimeReceived.ToString()); 
      Console.WriteLine(abc.From.Name); 
      Console.WriteLine(abc.DisplayTo); 
      Console.WriteLine(abc.DisplayCc); 
      Console.WriteLine(abc.Body.Text); 
     } 
     private static bool RedirectionUrlValidationCallback(string redirectionUrl) 
     { 
      bool result = false; 
      Uri redirectionUri = new Uri(redirectionUrl); 
      if (redirectionUri.Scheme == "https") 
      { 
       result = true; 
      } 
      return result; 
     } 
    } 
} 
+4

怎麼樣的錯誤信息你不明白?你從不在任何地方定義'id'。 – itsme86

+0

儘管該方法要求一個名爲「id」的參數,但仍然需要提供有效的輸入。因此,您需要事先處理變量的正確初始化 –

回答

3

誤差應在此行

EmailMessage abc = EmailMessage.Bind(service, id, propSet); 

有人說,id是不是在你的代碼中定義的,所以你需要在你的代碼初始化id。例如,如果id是字符串,那麼你可以定義像

string id = "any value"; 
相關問題