Прошло некоторое время с тех пор, как я возился с одним и тем же, и пришел к выводу, что это невозможно, несмотря на то, что у меня есть права «Отправить как».
Выдача себя за другое лицо - единственный способ использовать EWS, см. MSDN:
ExchangeService service = new ExchangeService();
service.UseDefaultCredentials = true;
service.AutodiscoverUrl("[email protected]");
// impersonate user e.g. by specifying an SMTP address:
service.ImpersonatedUserId = new ImpersonatedUserId(
ConnectingIdType.SmtpAddress, "[email protected]");
Если олицетворение не включено, вам нужно будет предоставить учетные данные пользователя, от имени которого вы хотите действовать. См. эту статью MSDN.
ExchangeService service = new ExchangeService();
service.Credentials = new NetworkCredential("user", "password", "domain");
service.AutodiscoverUrl("[email protected]");
В качестве альтернативы вы можете просто указать адрес для ответа.
EmailMessage mail = new EmailMessage(service);
mail.ReplyTo.Add("[email protected]");
Однако права «Отправить как» действительно применяются при отправке почты с использованием System.Net.Mail, что во многих случаях вполне подходит при простой отправке электронной почты. Существует масса примеров, иллюстрирующих как это сделать.
// create new e-mail
MailMessage mail = new MailMessage();
mail.From = new MailAddress("[email protected]");
mail.To.Add(new MailAdress("[email protected]"));
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);
person
bernhof
schedule
20.07.2012