2014-01-13 31 views
1

我正在編寫一個Outlook加載項,用於跟蹤回覆或轉發的電子郵件數量。在開發PC上,我使用了outlook 2010,代碼工作正常,但在最終用戶的PC上安裝的Outlook 2007中失敗。錯誤消息「無法執行運行時綁定到空引用」。在發送電子郵件之前,我需要的只是從收件人的電子郵件地址和主題發送的郵箱。 這裏是我發送電子郵件作爲新電子郵件的代碼,您能否告知我們在Office 2010和2007之間使用的API有何區別?我應該用什麼來代替?使用C#從Outlook 2007發送電子郵件時,無法執行運行時綁定到空引用

private void Send_Click(object sender, RibbonControlEventArgs e) 
    { 
     try 
     { 
      string _sub, _from, _to; 
      var inspector = this.Context as Outlook.Inspector; 
      dynamic mail = inspector.CurrentItem; 
      _from = mail.SendUsingAccount.DisplayName.ToString(); 
      _to = mail.To.ToString(); 
      _sub = mail.Subject.ToString(); 
      /* 
      some extra code to save to database before sending email 
      */ 
      mail.Send(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message, "Error occured in send command"); 
     } 
    } 

回答

1

我可以給你一個簡單的建議;改用Outlook 2007模板(VS2010)。這適用於Outlook 2007和2010.如果您擁有奢華,請將兩個項目添加到您的解決方案中,一個用於OL2007,另一個用於OL2010。

+0

不幸的是,我使用的是VS2012,它只有Office 2010的模板。 –

0

作爲一般的經驗法則,您必須在支持最低版本Outlook的計算機上開發(在您的情況下爲Outlook 2007)。

或者您至少可以在安裝了Outlook 2007的計算機上的interop dll上創建,並在您的項目中添加該interop dll(而不是添加Outlook COM對象)作爲參考。

0

我意識到這不是一個編碼錯誤,我使用了上面的建議,並在VS 2010和Office 2007中使用了一臺計算機,並解決了問題。

相關問題