Exchange의 다른 사용자로 보내시겠습니까?

Exchange의 다른 사용자로 보내시겠습니까?

이메일을 보내기 위해 Exchange에 연결하는 Windows 서비스인 .NET 프로그램이 있습니다. 목표는 고용주가 소유한 도메인 내의 모든 이메일 주소에서 보낸 것처럼 보이는 이메일을 보낼 수 있도록 허용하는 것입니다. 프로그램은 "AutoMail"이라는 Active Directory 계정으로 인증하고 있으며 문제는 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)에게 AD의 도메인 개체에 대한 특정 ACL을 제공하는 것입니다. 적용 대상은 '고인 사용자 개체'에 대한 것이며 "다른 이름으로 보내기" 상자만 선택되어 있습니다. 이렇게 하면 도메인의 모든 사용자 개체(권한 상속이 해제된 컨테이너에 있지 않는 한) AutoMail이 해당 개체를 가장할 수 있습니다.

다른 사람 이름으로 보내기 사용자 권한 예시
(원천:sysadmin1138.net)

관련 정보