Windows Server 2022のIIS6.0でSMTPサーバを稼働させる方法を調べてみた

テクニカル
本サイトはアフィリエイト広告を利用しています。なお本記載は景品表示法改正に伴うASPからの要請に基づく表記であり、依頼された記事などは別途記載を実施しています。

Windows Server 2012頃から非推奨扱いになっていたSMTPサーバですが、10年経った2022でも機能としては残っています。

しかし中途半端に残っているので正攻法で構築するとエラーに。結論としては動くのですが、エラー解決方法をまとめてみました。

残っているけどまともに使えない2022でのSMTPサーバ

SMTPサーバ自体の導入方法は他で調べてもらうこととして、2019までと同様の手順でサーバマネージャから導入すると、正常に完了してIISマネージャ6.0と共にSMTPサーバが設定されます。

この状態でも25番ポートで待ち受けをしているのですが、このままでは転送先の設定がないので使用できません。そのため導入後に転送先の設定を行う必要があります。

設定のために[SMTP Virtual Server #1]を右クリックして設定しようとすると、MMC(管理コンソール)から以下のエラーが表示されます。

「スナップインにエラーがあることが、MMCにより検出されました。MMCを終了してから再実行してください。」

設定しようとするとエラーが表示され、何度繰り返しても同様のエラーが表示し続けて設定ができないんですよね。これが2022でSMTPサーバが使えないと言われる所以です。

なお何度も繰り返すとたまーに設定画面が表示されますが、ここで設定して保存しても反映されないため意味がありません。さてどうしましょう。

IISの設定ファイルがおかしいらしいので修正すれば動作する模様

一応サービスとして動くわけだし、何とかできるんじゃないかと思って調査していると、怪しい点を発見。その怪しい点というのがIISの設定ファイル。

IISの設定ファイル自体は「C:\Windows\System32\inetsvr」に入っているのですが、今回注目するのは「MetaBase.xml」というファイル。この中にSMTPサーバに関する設定情報も入っているようです。

その中の373行目「<IIsSmtpService Location =”/LM/SmtpSvc”~」という辺りからがSMTPサーバの設定なのですが、正常動作する2019サーバの同ファイルと比べると差異が1つ。それが以下の行です。

RelayIpList="530079007300740065006d0000000080010000004c00000000000000000000000100000001000000020000000200000004000000000000004c00008000000000000000000000000000000000ffffffff00000000"

↑Windows Server 2022での記述内容

RelayIpList="18000080200000803c00008044000080010000004c00000000000000000000000100000001000000020000000200000004000000000000004c00008000000000000000000000000000000000ffffffff00000000"

↑Windows Server 2019での記載内容

これは何の設定なのかというと、「アクセス」内の「中継の制限」という項目です。関係なさそうな項目だなとは思いつつ、試しに2022のxmlファイルの中身を2019の内容に書き換えてみました。

IIS管理サービスや簡易メール転送プロトコル (SMTP)が動作しているとロックされていて書き換えできないので、サービスから一旦停止します。停止したら念のためバックアップを取っておきましょう。

バックアップを取得したら「MetaBase.xml」の「399行目」を以下と差し替えます。

RelayIpList="18000080200000803c00008044000080010000004c00000000000000000000000100000001000000020000000200000004000000000000004c00008000000000000000000000000000000000ffffffff00000000"

差し替え完了したら保存の上でIIS管理サービスと簡易メール転送プロトコル (SMTP)を再起動してIIS6.0を起動してみましょう。

今まで何度やってもエラーばっかり出たSMTPサーバの設定がエラー無く起動できました。設定を変えて開きなおしても保持されているので、問題なくSMTPサーバを使用することが可能になっていると思います。

デフォルトで入っている値がなんかエラーを引き起こしていたようですね。なんで変わってるのかも謎ですが……。

実は「RelayIpList」を空白にしても動く

今回は2019サーバの値を持ってきましたが、実は「RelayIpList=””」として保存しても問題なく起動することは確認しています。でもなんか空白って気持ち悪いので以前のパラメータを持ってきたという流れです。

もう余命宣告はされたと理解して25番ポートにしか飛ばせない機器は無くそう

2019までは普通に動いていたSMTPサーバですが、2022では現状「無理やり動かした」って感じが否めません。さらにプレビュー版である「Windows Server Preview Build 25169」では項目ごと削除されたという話もあるので、次期OSと思われるWindows Server 2025(仮)では完全に消えることも予想できます。

いざどうしようもなくなって騒ぎになる前に、もう25番ポートにしか送れないような機器はリプレイスを進めていきましょう。

コメント

タイトルとURLをコピーしました