IISのSMTPサーバ

Windows Server 2019 でSMTPサーバ(IISの機能)をインストールし、他のサーバからSMTPリレーを行えるよう設定する手順をまとめました。
手順はどの環境でも確認しやすいよう、Gmailでの確認方法にしています。

実施するのは下記の4点です。

  • サーバーマネージャーの役割と機能の追加から、機能の「SMTPサーバー」をインストール
  • 「インターネット インフォメーション サービス (IIS) 6.0 マネージャー」でSMTPサーバの設定
  • リレー先SMTPサーバ側の設定
  • メール配送テスト

SMTPサーバのインストールはそのままなので手順は省略します。
SMTPサーバーの機能をインストールすると、必要なIISの役割も一緒にインストールされます。
サービスの「簡易メール転送プロトコル(SMTP)」はインストール直後「手動」起動になっているため、「自動」起動に変更しておきます。

次にIIS6.0マネージャーを起動し、SMTPサーバの設定を行います。
[SMTP Virtual Server #1]のプロパティを表示し、アクセスタブの「中継の制限」から接続を許可するIPアドレスの範囲をすべて登録します(127.0.0.1,192.168.1.0/24等)。
配信タブをから[送信セキュリティ]ボタンをクリックし、以下を設定します。

  1. 基本認証を選択
  2. ユーザー名に有効なGmaiのアカウント(メールアドレス)を入力
  3. パスワードに「2」で入力したアカウントのパスワードを入力
  4. 「TLS暗号化」にチェックを入れる
  5. [OK]ボタンをクリック

[送信接続]ボタンをクリックし、TCPポートに「587」を設定して[OK]ボタンをクリックします。

[詳細設定]ボタンをクリックし、スマートホストに「smtp.gmail.com」を入力して「受信メッセージでDNS逆引き参照を実行する」にチェックを入れて[OK]ボタンをクリックします。

設定が完了したら、SMTPサーバの停止/開始を行います。

Gmailの安全性の低いアプリのアクセスが通常は無効になっているので有効にします。

これを有効にしないとメールが配送されません。

次に、自サーバに対してメールの送信を行い、設定したSMTPサーバ経由でメールが配送されることを確認します。
PowerShellで実行する方法と、コマンドプロンプトからtelnetで行う方法があります。

1.PowerShellでメール送信

PowerShellで実行する方法は簡単で、1行で実行できます。
PowerShellを起動し、下記を実行します。
※SMTPサーバにlocalhostを指定していますが、中継の制限で許可している自サーバのIPアドレスを指定する必要があります。また、メールアドレス「xxx@gmail.com」は設定したメールアドレスを指定します。

Send-MailMessage -To xxx@gmail.com -Subject "test mail" -Body "test mail dayo" -From xxx@gmail.com -SmtpServer localhost -Port 25

特にエラー等が出ていなければメールが配送されているはずです。
指定したメールアドレスにメールが届いていることを確認します。

2.Telnetでメール送信

Telnetクライアントがインストールされていない場合は、サーバーマネージャーの役割と機能の追加から、機能の「Telnet Client」をインストールします。

コマンドプロンプトを起動し、下記を実行します。
※Telnetでlocalhostに接続していますが、中継の制限で許可している自サーバのIPアドレスを指定する必要があります。また、メールアドレス「xxx@gmail.com」は設定したメールアドレスを指定します。

telnet localhost 25
 ehlo gmail.com
 mail from: xxx@gmail.com
 rcpt to: xxx@gmail.com
 data
 subject: test mail
 test mail dayo
 .
 quit

実行後、「Queued mail for delivery」が表示されていればメールが配送されているはずです。
指定したメールアドレスにメールが届いていることを確認します。

ここまで確認できたら、あとは外部サーバからSMTPサーバとして指定して送信できるかテストするのみです。
指定する際は25番ポートで指定し、TLS設定等の考慮は不要です。

コメントは受け付けていません。