2012-04-20 97 views
0

我有一個SharePoint 2010中的Web部件,它具有一個Event接收器,該接收器在項目添加到列表時觸發。事件接收器應該發送一封郵件,但沒有發送。無法使用事件接收器在SharePoint中發送郵件

當我嘗試沒有事件接收器時,它可以正常工作,我如何使用事件接收器發送郵件?

StringDictionary headers = new StringDictionary(); 
string body = "Hi!"; 
headers.Add("to", "[email protected]"); 
headers.Add("from", "[email protected]"); 
headers.Add("subject", "Paulo says hi"); 
headers.Add("content-type", "text/html"); 
SPUtility.SendEmail(web, headers, body) 

謝謝你的幫助。

+0

您是否獲得一個異常還是有可在SharePoint ULS錯誤日誌? – 2012-04-20 12:29:00

回答

1

而事件接收器運行在HTTP請求的上下文中。據瞭解,SPUtility.SendEmail與此有關。通常的做法是在發送的電子郵件設置HttpContext.Current爲null:

SPWeb thisWeb = thisSite.RootWeb; 
string toField = "[email protected]"; 
string subject = "Test Message"; 
string body = "Message sent from SharePoint"; 
HttpContext oldContext = HttpContext.Current; 
HttpContext.Current = null; 

bool success = SPUtility.SendEmail(thisWeb, true, true, toField, subject, body); 
HttpContext.Current = oldContext; 

參考(向下滾動到評論):http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.utilities.sputility.sendemail(v=office.12).aspx

+0

謝謝,我試過了,但它沒有解決問題。是否有關於事件接收器和在SharePoint中發送郵件的問題? – carruw 2012-04-20 08:52:44

相關問題