2

SharePoint 2013 クライアント オブジェクト モデルSendEmail-Methodを使用して電子メールを送信したいのですが、常に「受信者を指定する必要があります」というメッセージが表示されます。エラー。メールアドレスを変えていくつかのSharePointサーバーで試してみましたが、いずれもエラーが発生しました。

サンプルソース (C#):

string webUrl = "http://sharepoint.example.com/";

EmailProperties properties = new EmailProperties();
properties.To = new string[] { "email@example.com" };
properties.Subject = "Test subject";
properties.Body = "Test body";

ClientContext context = new ClientContext(webUrl);

Utility.SendEmail(context, properties);

context.ExecuteQuery(); // ServerException thrown here
context.Dispose();

エラーメッセージ:

受信者を指定する必要があります。

エラーの種類:

System.InvalidOperationException

サーバー スタック トレース:

   at System.Net.Mail.SmtpClient.Send(MailMessage message)
   at Microsoft.SharePoint.Utilities.SPUtility.SendEmail_Client(EmailProperties properties)
   at Microsoft.SharePoint.ServerStub.Utilities.SPUtilityServerStub.InvokeStaticMethod(String methodName, XmlNodeList xmlargs, ProxyContext proxyContext, Boolean& isVoid)
   at Microsoft.SharePoint.Client.ServerStub.InvokeStaticMethodWithMonitoredScope(String methodName, XmlNodeList args, ProxyContext proxyContext, Boolean& isVoid)
   at Microsoft.SharePoint.Client.ClientMethodsProcessor.InvokeStaticMethod(String typeId, String methodName, XmlNodeList xmlargs, Boolean& isVoid)
   at Microsoft.SharePoint.Client.ClientMethodsProcessor.ProcessStaticMethod(XmlElement xe)
   at Microsoft.SharePoint.Client.ClientMethodsProcessor.ProcessOne(XmlElement xe)
   at Microsoft.SharePoint.Client.ClientMethodsProcessor.ProcessStatements(XmlNode xe)
   at Microsoft.SharePoint.Client.ClientMethodsProcessor.Process()

ここで何が問題なのですか?

4

3 に答える 3

3

電子メールの受信者は、現在の SharePoint サイト ユーザーに解決される必要があると思います。そのため、ランダムなメール アドレスをメール受信者として使用することはできません。

于 2013-02-15T10:30:47.750 に答える
0

そのはず:

user.LoginName after EnusreUser for Ex:
User user = clientContext.Web.EnsureUser(strlogonName);
clientContext.Load(user);
clientContext.ExecuteQuery();

EmailProperties properties = new EmailProperties();
properties.To = new string[] { user.LoginName };
properties.Subject = "Test subject";
properties.Body = "Test body";

ClientContext context = new ClientContext(webUrl);

Utility.SendEmail(context, properties);
于 2015-02-20T05:47:41.863 に答える
0

メールアドレスの代わりにユーザーのログオン名を使用してみてください;)

于 2014-01-13T10:10:02.417 に答える