web-dev-qa-db-ja.com

Windows Server 2008のIIS 7でのSMTPのセットアップ

WebサイトはもともとIIS 6の下で開始され、サイトはそこでうまく機能しました。W2K8Sを実行する新しいサーバーに移動した後、Webサイトからのメール配信以外はすべてIIS 7。

誰かが良い解決策を持っているかどうかを確認するためにWebで簡単に調査しましたが、役に立ちませんでした... Microsoft自身のサポートサイトでの希望のちらつきさえありませんでした。

新しいW2K8Sボックスでこれまでに実行した手順は次のとおりです。

  • サーバーマネージャーの下にSMTPの機能を追加
  • IIS 7 Managerでサイト自体のSMTP電子メールを有効にして、電子メールをSMTPサーバーのローカルホストに配信する、失敗
  • IIS 7 Manager(サイトを有効にするためにオンにする必要があるかどうか不明))でルートサイトのSMTP電子メールを有効にして、SMTPサーバーのローカルホストに電子メールを配信できませんでした

これらの基本的なセットアップに失敗した後、ポート25のサーバーと実際に通信できることを確認しました。問題のサーバーとの間で、ポート25のテスト電子メールに正常にTelnetで接続して、HELOなどを取得できます。だから私はそれがファイアウォールの設定の問題だとは思わない。

IIS 7セットアップテストは、匿名認証とWindows認証の両方で実行されましたが、どちらの方法でも運がありませんでした。

手動でチェックしたWeb構成ファイル。サーバーがlocalhostを使用するための正しいエントリを反映しています。

マニュアルを読んで、そこにも運がない...:-/

16
user30432

私も同じ問題に直面しました。

私はこのリンクに出くわしました http://www.frontpagewebmaster.com/m-215289/tm.htm

そして私は問題を解決することができました。このリンクの最後の投稿に移動します。

私の場合、「ネットワークサービス」ユーザーに「ピックアップ」フォルダへの権限を与えることで問題を解決します。

これが役立つことを願っています...

2
Rajeev

イベントID 4006がメールサーバーのIPではなくドメインコントローラーのIPを参照していることに気付きました。私はiis 6管理ツールを使用して、メールサーバーを指すスマートホストと出来上がりを設定しました!問題は解決されました。

1
Njuki

OK、"NETWORK USERにピックアップフォルダーへの書き込み権限を与える"と言った投稿に、最終的に機能します。私がしたことは:

  1. Exchangeサーバーを実行している場合を除き、"スマートホスト"を使用する必要があります。 Gmailアカウントを使用していますが、GmailではSMTP転送が許可されています。

  2. SMTPサーバーのセキュリティおよびIIS7構成設定にWindows認証を使用できます。

  3. まず、Webページで配信方法= "network"を設定し、SMTPサーバーとは別にスマートホストを構成します。

    SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
    client.DeliveryMethod = SmtpDeliveryMethod.Network;
    client.UseDefaultCredentials = false; // use your smart Host login client.Credentials = new NetworkCredential("[email protected]", "password");
    client.EnableSsl = true;
    

    これにより、電子メールが直接送信され、SMTPサーバーをバイパスします。

  4. 2番目のステップでは、それが機能するようになったら、Webページとは独立してSMTPサーバーを使用するサンプルWindowsアプリを作成し、それを機能させます。

    SmtpClient client = new SmtpClient("your server ip", 25);
    client.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
    client.EnableSsl = false; // you can't use ssl with a pickup folder
    client.UseDefaultCredentials = true; // use windows credentials
    

    これにより、Webページがバイパスされ、SMTPサーバーが正しく構成されていることを確認します。

  5. 最後に、ピックアップフォルダーの共有を設定してNETWORK_SERVICEへの書き込みアクセスを許可することにより、Webページを機能させます。手順3のログイン情報をSMTP設定に転送し、認証を統合セキュリティに設定し、手順4のコードをWebページに使用します。

1
john

この古い質問で説明したのとまったく同じ問題がありました。最後に私はそれに対する解決策を見つけました。私の場合、オペレーションシステムはW2008 R2で、IIS 7.5ですが、これは問題ではないと思います。

根本的な問題は、W2008 R2のSMTPサービスがIISのレガシー部分であるように見えることです。 IIS 6.0管理ツール、IIS 7.Xサーバーと並んでインストールされます。これにより、2つの派生問題が発生します。

IIS 7.Xは、SMTPサービスについて何も認識していません。 ASP.NETでSMTPを構成してPickupDirectoryFromIisを使用すると、例外が発生します。 したがって、このSMTP構成は使用できません

<smtp deliveryMethod="PickupDirectoryFromIis" />

しかし、SpecifiedPickupDirectoryを使用してSMTPを構成することは可能ですこの構成を使用できます

<smtp deliveryMethod="SpecifiedPickupDirectory">
    <specifiedPickupDirectory pickupDirectoryLocation="C:\inetpub\mailroot\Pickup"  />
</smtp>

この方法でピックアップディレクトリを構成すると、IIS6とIIS7.Xのセキュリティシステムが異なるという2番目の種類の問題が発生する可能性があります。 IIS 7.XはアプリケーションプールIDとの統合セキュリティを導入します。IIS 6.0とそのSMTPサービスはこれを認識していません。そのため、書き込み権限を付与する必要がありますピックアップフォルダーへのIIS_IUSRSの場合。私の構成では、ピックアップフォルダーはC:\ inetpub\mailroot\pickupです。

1
Dirk Brockhaus

これは、偶然にも、古い「クラシック」ASPアプリがCDONTSに依存してメールを送信しているのでしょうか?

もしそうなら、おそらく これらのリンク の1つが役に立ちますか?

編集:元の投稿のメモに気付く前に返信しました。無視...

0
Chris K

この診断ツールがより多くの洞察を提供できるかどうかはわかりませんが、

http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1308

このツールはx86用です。

0
Lex Li

IIS6からIIS7に移行するASP.NetアプリでSMTPを実行する方法を調べているときに、この投稿に遭遇しました。私が見つけたのは、SMTPサーバーをまったくセットアップする必要がないことです。SMTP電子メールをセットアップするだけで十分で、Webサーバー経由のSMTPリレーのセキュリティ上の懸念がないという追加の利点があります。

したがって、実際にSMTPルーティングを実行するためにWebサーバーが必要ない場合は、IIS7でサーバーを設定する必要はありません。

0
n8wrl

SMTPサービスがローカルホストからのリレー用のメールを受け入れているかどうかを確認しましたか?これを行うには、問題のマシンからローカルのSMTPサーバーにTelnetで接続し、SMTPコマンドを使用してテストメッセージを送信します。 SMTPサービスはコマンドのフォーマットについて非常にうるさいので、コマンドを入力するときは注意する必要があります(つまり、入力ミスを修正するためにバックスペースを使用しないでください)。

0
kevintechie