2014-01-07 38 views
0

在我的開發機器我開發了一種工作沒有問題的方法。它是一個簡單的按鈕,當我點擊它打開一個電子郵件地址和一些內容的Outlook電子郵件但是,當我將代碼發送到生產環境...所有用戶都在頁面的page_load上設置了以下方法的錯誤。「發送電子郵件到」與Microsoft.Office.Interop.Outlook

protected void btnSendEmail_Click(object sender, ImageClickEventArgs e) 
{ 
    //... 
    Microsoft.Office.Interop.Outlook.Application oApp = new Microsoft.Office.Interop.Outlook.Application(); 
    Microsoft.Office.Interop.Outlook._MailItem oMailItem = (Microsoft.Office.Interop.Outlook._MailItem)oApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem); 
    string name = someDataTable.Rows[0]["NAME"].ToString(); 
    string url = HttpContext.Current.Request.Url.AbsoluteUri; 
    oMailItem.To = [email protected]; 
    oMailItem.Body = string.Format("hi {0}, \n \n [Insert the content mail here.] \n \n {1} ", name, url); 
    oMailItem.Subject = "Some Title"; 
    oMailItem.Display(false); 
} 
+0

什麼是錯誤,我的水晶球此刻正在眨眼。 – OTTA

回答

1

Microsoft Office Interop程序集將在服務器上(假設Outlook安裝在服務器上)打開Outlook,而不是在客戶端上。這是你的意圖嗎?

在Microsoft Office互操作程序集不支持在服務器端。請參閱KB Article

我建議你切換到其他技術。如果您只是試圖讓服務器發送電子郵件,請嘗試查看System.Net.Mail命名空間。見How To Send An Email With C#.

如果你的目的是要在客戶端啓動一個新的Outlook電子郵件窗口,可以很容易地實現這一目標用一個簡單的HTML錨鏈接。見Sending HTML in mailto anchor tag