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