2012-04-20 25 views
0

SharePoint 2010に、アイテムが一覧に追加されたときに発生するイベント受信者を持つWebパーツがあります。イベント受信者はメールを送信する予定ですが、送信しません。イベント受信者を使用して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にエラーがあるされていますログ? –

答えて

1

イベント受信側は、HTTP要求のコンテキストで実行されます。 SPUtility.SendEmailにはこの問題があることが知られています。一般的な方法は、電子メールを送信するときにnullにHttpContext.Currentを設定することです:

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

関連する問題