Прошло много времени с тех пор, как я возился с той же вещью, и я пришел к выводу, что это невозможно, несмотря на наличие прав "Отправить как".
Олицетворение - единственный способ использовать 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");
Однако "Отправить"as "права do " применяются при отправке почты с использованием 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);