同じことをいじってからしばらく経ちましたが、「送信者」権限があるにもかかわらず、それは不可能であると結論付けました。
偽装は、EWS を使用する唯一の方法です。MSDNを参照してください。
ExchangeService service = new ExchangeService();
service.UseDefaultCredentials = true;
service.AutodiscoverUrl("app@domain.com");
// impersonate user e.g. by specifying an SMTP address:
service.ImpersonatedUserId = new ImpersonatedUserId(
ConnectingIdType.SmtpAddress, "user@domain.com");
偽装が有効になっていない場合は、代理で操作するユーザーの資格情報を提供する必要があります。この MSDN の記事を参照してください。
ExchangeService service = new ExchangeService();
service.Credentials = new NetworkCredential("user", "password", "domain");
service.AutodiscoverUrl("user@domain.com");
あるいは、単に返信先アドレスを指定することもできます。
EmailMessage mail = new EmailMessage(service);
mail.ReplyTo.Add("user@email.com");
ただし、System.Net.Mail を使用してメールを送信する場合は、「送信者」権限が適用されます。多くの場合、電子メールを送信するだけであれば問題ありません。これを行う方法を示す例がたくさんあります。
// create new e-mail
MailMessage mail = new MailMessage();
mail.From = new MailAddress("user@domain.com");
mail.To.Add(new MailAdress("recipient@somewhere.com"));
message.Subject = "Subject of e-mail";
message.Body = "Content of e-mail";
// send through SMTP server as specified in the config file
SmtpClient client = new SmtpClient();
client.Send(mail);