2012-04-20 2 views
0

SharePoint 2010에 항목이 목록에 추가 될 때 발생하는 이벤트 수신기가있는 웹 파트가 있습니다. 이벤트 수신자는 메일을 보내지 만 전달하지는 않습니다.이벤트 수신기를 사용하여 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에 오류가 일반적인 방법은 이메일을 보내는 동안 null로 HttpContext.Current를 설정하는 것입니다 로그? –

답변

1

이벤트 수신자는 HTTP 요청의 컨텍스트에서 실행됩니다. SPUtility.SendEmail에는이 문제가있는 것으로 알려져 있습니다.

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

관련 문제