Microsoft IISはSMTPの役割を非常にうまく果たすことができますが、セットアップにはかなりの手順が必要です。幸運なことに、私はIISのSMTPリレーサーバーをセットアップし、すべての手順を文書化しました!
この記事では、Office 365での送信メールに使用するためのSMTPリレーサーバーを正常に設定するために必要なすべての手順をカバーします。技術的には、このSMTPリレーを使用して、一般的なSMTPリレーメール配信の目的にもすばやく使用することができます。
前提条件
IISをセットアップし、私と一緒に進めるために、Windows Server 2016が利用可能なマシンを準備してください。また、サーバーに管理者としてログインしていることを前提としています。
IIS SMTPサーバーのWindows機能をインストールする
IIS SMTPリレーをセットアップするために最初に行う必要のある作業は、IIS SMTPサーバーをインストールすることです。 SMTPサーバーのWindows機能をインストールする必要があります。
Server Managerを使用する
Server Managerを使用してWindowsの機能をインストールする方法については、この記事「役割、役割サービス、または機能のインストールまたはアンインストール」を参照してください。
PowerShellを使用する
SMTPサーバーの機能をインストールすると、多くのポイントとクリックが削除されます。管理者としてPowerShellコンソールを開き、以下のコマンドを実行してください。
インストールが完了するのを待ちます。次のような出力が表示されるはずです。

TLS用の証明書をインポートします。
TLS経由で電子メールを送信する場合(Office 365)、IIS SMTPサーバーを構成する前に、サーバーのローカルマシンの個人証明書ストアにSSL証明書をインポートする必要があります。 Office 365 SMTPリレー が非TLSの場合は、この手順をスキップできます。
証明書がない場合は、内部PKI(ある場合)またはLetsEncrypt、Digicertなどのサービスを使用して公開証明書を取得できます。
証明書を取得したら、ローカルマシンの個人証明書ストアにインポートする必要があります。証明書MMCを使用して証明書をインポートする方法について詳しくは、証明書のインポートとエクスポート – Microsoft Windowsを参照してください。
成功した場合、次のような確認ウィンドウが表示されます。[OK]をクリックして確認します。 (1)。

メインコンソールウィンドウに戻り、個人 > 証明書フォルダを更新すると、インポートされた証明書が表示されるはずです。
証明書の検証
インポートしたら、証明書チェーンが完全でエラーがないことを確認してください。すべてが正常であれば、証明書を開いて有効期間が現在であり、証明書に関連する秘密鍵があることを確認できるはずです。以下に例を示します。

認証パスタブでは、以下のように証明書がOKであることを示す証明書のステータスも表示されるはずです。

IIS SMTPサーバを設定します。
この時点でSMTPサーバのインストールは成功しましたが、使用する前にサーバの設定を行う必要があります。
SMTPサーバはIIS6互換モードで実行され、組み込みのPowerShellサポートはありません。これは、IIS6管理コンソールを使用して設定を手動で行う必要があることを意味します。
スタートメニューから「実行」を選択し、inetmgr6と入力しEnterキーを押します。これにより、IIS 6コンソールが開きます。
コンソールが開いたら、[SMTP仮想サーバ#1](1)を右クリックし、プロパティ(2)を選択します。

プロパティウィンドウで、ログの有効化(1)をチェックし、プロパティ(2)をクリックします。

詳細タブに移動し、リスト内のすべてのボックスをチェック(1)し、OK(2)をクリックします。

プロパティウィンドウに戻り、配信タブに移動し、詳細(1)をクリックします。

高度な配信ウィンドウで、宛先SMTPメールサーバーに使用する完全修飾ドメイン名(1)を入力します。これはコンピュータ自体のFQDNと同じである必要はありません。Office 365で使用するためにこのSMTPサーバーを構成している場合は、スマートホスト(2) フィールドに、Office 365のMXエンドポイントを定義します。そして、OK(3)をクリックします。

IIS SMTPサーバーに許可されたIPを追加する
テストしたいデバイスがある場合、最初にそのIPアドレスをリレー制限に追加する必要があります。この例では、IPアドレス192.168.0.3がリレー制限に追加されます。このIPアドレスは、サーバーと同じネットワーク内のコンピュータに属しています。
リレー制限に許可されたIPを追加するには、アクセスタブに移動し、リレー(1)をクリックします。

リレー制限ウィンドウで、追加(1)

をクリックします。それから、IPアドレス(1)を入力し、OK(2)をクリックします。

リレー制限ウィンドウに戻り、IPアドレスがリストに追加されていることを確認し、OK(1)をクリックしてプロパティウィンドウを閉じます。

SMTPサーバーが証明書を検出し、TLS暗号化を有効にすることを確認します。
リレーサーバーがTLS経由で送信する場合、IIS SMTPサーバーが証明書を認識し、TLS暗号化を有効にする必要があります。
SMTPサーバーのプロパティのアクセスタブには、「TLS証明書の有効期限がXXXXXXです」というメッセージが表示されます。これが表示されている場合は、準備完了です。

次に、配信タブをクリックし、送信時セキュリティをクリックします。 (1)、TLS暗号化をチェックします。 (2)、OKをクリックします。 (3)。

これでIIS SMTPサーバーの設定が完了します。
IIS SMTPメールリレーサーバーのテスト
この時点で、SMTPサーバーが設定され、メールの中継を開始する準備が整いました。次のステップは、テストです。SMTPリレーを通じてメールを送信し、受信するSMTPサーバーがメッセージを受け取るか確認してください。
ピックアップディレクトリでテスト
IIS SMTPサーバーがインストールされると、サーバー上にC:\inetpub\mailroot\Pickupというフォルダが作成されます。このディレクトリは、SMTPサービスが新しく送信されたメールを処理する前に受け取るための場所です。
この方法を使用してテストするには、以下のような内容のプレーンテキストファイルを作成してください:
FromとToの値を自分のものに変更するのを忘れないでください。
ファイルをピックアップディレクトリ以外の場所にmail.txtとして保存してください。
ファイルを保存したら、ファイルをC:\inetpub\mailroot\Pickupフォルダにコピーして貼り付けます。 成功した場合、ファイルはすぐに消えるはずです。これは、SMTPサービスがファイルを受け取り、メッセージの処理を開始したことを意味します。
数秒から数分後に、mail.txtで指定された受信者のメールアドレスに送信されたメールを受け取るはずです。
PowerShellでのテスト
このテストでは、IIS SMTPサーバーの許可されたIPアドレスに追加したコンピューターからPowerShellを使用します。
PowerShellコンソールを開き、以下のコードをコピー/貼り付けしてください。 From
、To
、およびSmtpServer
の値を編集してください。 上記のリレーサーバーの設定によっては、TLSまたは非TLSのセットアップをテストするために、以下のいずれかの例を使用できます。
概要
この記事では、Office 365からの受信者のメール配信のためにIIS SMTPリレーサーバーを設定する方法について学びました。 GUIとPowerShellの組み合わせを使用して、TLSおよび非TLSのSMTPサーバーの設定方法を説明しました。 次に、PowerShellを使用してセットアップをテストして、すべてが正常であることを確認しました。