Пользователь, отправляющий сообщения от имени любого пользователя в Exchange?

Пользователь, отправляющий сообщения от имени любого пользователя в Exchange?

У меня есть программа .NET — служба Windows, которая подключается к Exchange для отправки электронной почты. Цель — разрешить ей отправлять электронную почту, которая выглядит как отправленная с любого количества адресов электронной почты в доменах, принадлежащих моему работодателю. Программа проходит аутентификацию с помощью учетной записи Active Directory — называемой «AutoMail» — и проблема в том, что Exchange выдает следующий код ответа об ошибке:

System.Net.Mail.SmtpException: Mailbox unavailable. The server response was: 5.7.1 Client does not have permissions to send as this sender
   at System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)
   at System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, String from)
   at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception)
   at System.Net.Mail.SmtpClient.Send(MailMessage message)
   at ConsoleApplication1.Program.Main(String[] args) in C:\WorkingCode\ConsoleApplication1\ConsoleApplication1\Program.cs:line 38

Когда я меняю сетевые учетные данные на свой логин A/D и отправляю электронное письмо от своего имени, все работает без проблем.

Итак, мой вопрос: можно ли настроить пользователя AutoMail со стороны Exchange так, чтобы ему было разрешено отправлять электронную почту с любого правильно отформатированного адреса электронной почты? Если да, то как?

Для справки, вот используемый код C#:

MailMessage mail = new MailMessage();
mail.From = new MailAddress("[email protected]");
mail.To.Add("[email protected]");
mail.Subject = "This is an email";
mail.Body = "This is a test. <b>This is bold</b> <font color=#336699>This is blue</font>";
mail.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();
smtp.Host = "172.16.1.33";
smtp.UseDefaultCredentials = false;
smtp.Credentials = new NetworkCredential("AutoMail", "password");
smtp.Send(mail);

решение1

Фактически входя в систему через хуки Exchange, вы подвергаетесь проверке отправителя. Существуют разрешения, которые необходимо установить, чтобы выдать себя за кого-то, что было сделано намеренно Microsoft. Разрешение, которое вы ищете, — «Отправить как». Такого рода операции требуются Blackberry Enterprise Server, поэтому не являются чем-то необычным.

Мы решили эту проблему, дав пользователю (в вашем случае AutoMail) определенный ACL для объекта Domain в AD. Apply To предназначен для 'Decedent User Objects', и только с отмеченным флажком "Send As". Это приведет к тому, что все объекты User в домене (если они не находятся в контейнере с отключенным наследованием прав) позволят AutoMail выдавать себя за них.

Пример разрешения «Отправить как пользователь»
(источник:сисадмин1138.нет)

Связанный контент