Exchange で誰でも送信できるユーザーですか?

Exchange で誰でも送信できるユーザーですか?

私は、Exchange に接続して電子メールを送信する .NET プログラム (Windows サービス) を持っています。目標は、雇用主が所有するドメイン内の任意の数の電子メール アドレスから送信されたように見える電子メールを送信できるようにすることです。プログラムは、"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 を付与します。[適用先] は [Decedent User Objects] 用で、[送信者] ボックスのみがオンになっています。これにより、ドメイン内のすべてのユーザー オブジェクト (権限継承がオフになっているコンテナー内にある場合を除く) が AutoMail による偽装を許可されます。

送信者ユーザー権限の例
(ソース:sysadmin1138.net

関連情報