web-dev-qa-db-ja.com

Exchangeコネクタが外部ドメインに送信されない

私は、自分の.Netアプリケーションを取得して、Exchangeサーバー経由でメールを送信しようとしている開発者です。私はExchangeのエキスパートではないので、資格を取得します!!

Exchangeで、次のプロパティを持つ受信コネクタを設定しました。

  1. ネットワーク:ポート25経由ですべてのIPアドレスを許可します。

  2. 認証:Transport Layer SecurityおよびExternally Securedチェックボックスがオンになっています。

  3. 権限グループ:匿名ユーザーとExchangeサーバーのチェックボックスがオンになっています。

しかし、このPowershellステートメントをExchangeサーバーで実行すると、ローカルドメインアドレスに送信すると機能しますが、リモートドメインに送信しようとすると失敗します。

WORKS:

C:\Windows\system32>Send-Mailmessage -To [email protected] -From [email protected] -Subject testing -Body testing -SmtpServer OURSERVER

(ところで:OURSERVER = boxname.domainname.localの私の値です。これは、Exchange管理シェルを起動したときに表示される完全修飾名と同じです)。

失敗:

C:\Windows\system32>Send-Mailmessage -To [email protected] -From [email protected] -Subject testing -Body testing -SmtpServer OURSERVER

Send-MailMessage:メールボックスを使用できません。サーバーの応答は次のとおりでした:5.7.1リレーできません。行:1 char:17 + Send-Mailmessage <<<< -To [email protected] -From [email protected] -Subject Testing -Body himom -SmtpServer FTI- EX + CategoryInfo:InvalidOperation:(System.Net.Mail.SmtpClient:SmtpClient)[Send-MailMessage]、SmtpFailed RecipientException + FullyQualifiedErrorId:SmtpException、Microsoft.PowerShell.Commands.SendMailMessage

編集: @TheCleanerのアドバイスから、リレーにAdd-ADPermissionを実行しましたが、役に立ちませんでした。

[PS] C:\Windows\system32>Get-ReceiveConnector "Allowed Relay" | Add-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"

Identity             User                 Deny  Inherited  
--------             ----                 ----  ---------  
FTI-EX\Allowed Relay NT AUTHORITY\ANON... False False  

助けてくれてありがとう。マーク

6
sisdog

非標準ポート(おそらく2525)で動作する受信コネクタを設定し、送信が許可されていることがわかっているサーバーのIPアドレスのみを受け入れるように制限する必要があります。認証で何もチェックされていないコネクタと、権限グループで匿名ユーザーがチェックされているコネクタを作成します。

その後、PSで次のコマンドを実行する必要があります。デフォルトでは、Exchangeは受信コネクタでの匿名の中継をブロックします。

Get-ReceiveConnector “Receive Connector Name” | Add-ADPermission -User “NT AUTHORITY\ANONYMOUS LOGON” -ExtendedRights “Ms-Exch-SMTP-Accept-Any-Recipient”

私は自分のExchangeサーバーでこれをテストし、Gmailと自分のドメインの両方に送信し、Exchangeドメインと偽のドメインから送信しました。

また、-port 2525引数をPSスクリプトに渡します。

3
atomicharri

これはより回避策の可能性がありますが、スクリプトで資格情報を指定すると、Exchange側で構成を変更せずに外部に送信できるようになります。

0
KERR

私は、Exchangeサーバーだけがあり、ゲートウェイ/スパムフィルターなどの特別なものは何もないと仮定します。

受信コネクタ( "Relay"と呼びます):

  1. [これらのIPアドレスを持つリモートサーバーからメールを受信する]に、このアプリを実行するサーバーのIPアドレスが含まれていることを確認してください。

  2. 認証タップでチェックする必要があるのは、「外部的に保護されている」だけです。

  3. 権限グループで確認する必要があるのは、「Exchangeサーバー」だけです。

注:元の投稿のように "匿名"を使用する場合は、Exchangeシェルでこのコマンドを実行して、そのタイプのリレーコネクタを機能させる必要があります。

Get-ReceiveConnector "NAMEOFCONNECTOR" | Add-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"

次に、IPが上記の1にあるサーバーの1つからアプリを再試行します。 Exchangeサーバー自体で直接実行しないでください。

0
TheCleaner

(エッジまたはハブのいずれかに新しいSMTPコネクタを作成することにより)内部ネットワークからの認証なしで外部に中継する方法があります。

ほとんどの場合、可能であれば認証を設定した方がよいでしょう。これは、少数の専用プロセス/スクリプトなどから送信する場合にのみ機能します。

認証されていない中継が必要な場合は、新しいハブ受信コネクタルールを作成します。これを行うには(単一のExchangeサーバーがすべてのExchangeの役割を満たしていると想定):

サーバー構成->ハブトランスポート

受信に使用可能なすべてのIPアドレスを使用し、「リモートサーバーからメールを受信する」設定にリレーするリモートホストを入力します。

おそらく認証方法(おそらくTLS)は必要なく、許可グループは匿名に設定する必要があります。

0
Tim Brigham