中規模以上のシステム開発でもはや使わないことがないメール送信機能。
本番環境では顧客が契約しているSMTPサーバを使うことが多いのですが、開発時はもっぱらダミーのSMTPサーバを使用します。
そこで毎度毎プロジェクトでお世話になっているが「ダミーSMTPサーバ(smtp4dev)」です。
今まではローカルPCのWindowsや、Windows Server上で動かしていたのですが、Linux(Ubuntu)に配置することになったのでメモ。
まず、GitHubの smtp4dev ページから必要なプログラム一式をダウンロードします。
Windows版でもLinux版でもインストールは不要です。
ダウンロードファイルはZIP形式なので解凍し、フォルダ名が長いので変更します。
Rnwood.Smtp4dev-linux-x64-3.2.0-ci20221023104
↓
Rnwood.Smtp4dev
次にSCP等でLinuxへ配置します。
今回はUbuntu上の /home/{ユーザ名}/ 下にしました。
こんなパスになります↓
/home/{ユーザ名}/Rnwood.Smtp4dev
次にsmtp4devを起動します。
sudo /home/{ユーザ名}/Rnwood.Smtp4dev/Rnwood.Smtp4dev --urls=http://*:5000
urlsパラメータは、外部からブラウザで確認する際に必要なオプションとなります。
正常に起動できると外部のブラウザから下記のように確認できます。
http://{サーバIP}:5000
ブラウザで「ERR_CONNECTION_TIMED_OUT」が出て表示できない場合、Linux側のファイアウォールで弾かれている可能性があります。
※「ERR_CONNECTION_REFUSED」は起動時のurlsパラメータ付け忘れ。
Ubuntuの場合はufwコマンドで操作します。
まず、ファイアウォールの状態を確認してみます。
sudo ufw status
無効の場合「状態: 非アクティブ」と表示され、
有効の場合「状態: アクティブ」と表示され、設定があれば下に表示されます。
有効であった場合、試しにファイアウォールを一旦無効にしてみます。
sudo ufw disable
設定反映コマンドは不要。
これで再度外部のブラウザでアクセスしてみて繋がるようであればファイアウォールでしたね。
元が有効だった場合は有効に戻し、必要なポート(5000)だけ許可しましょう。
sudo ufw enable
sudo ufw allow proto tcp to 0.0.0.0/0 port 5000
繋がりましたかね?それでもダメな場合はiptablesで拒否設定されていないか確認してみてください。
sudo iptables -L INPUT
おわり。