メールを自動送信するシステムのテストをしたいとか、ドメイン設定やSSL設定に必要な認証メールを受け取りたいとか、ありますよね。
こんなとき「届いたメッセージのアカウント確認もメッセージ転送も行わず、ひたすらOKステータスを返してメッセージの内容を出力する」というエセSMTPサーバーが欲しくなります。
Pythonに便利なワンライナーが用意されていました。
$ sudo python -m smtpd -n -c DebuggingServer 0.0.0.0:25
たったこれだけでエセSMTPサーバーが起動します。
オプションの詳細はこちら。
Usage: smtpd.py [options] [localhost:localport [remotehost:remoteport]]
Options:
--nosetuid
-n
This program generally tries to setuid `nobody', unless this flag is
set. The setuid call will fail if this program is not run as root (in
which case, use this flag).
--version
-V
Print the version number and exit.
--class classname
-c classname
Use `classname' as the concrete SMTP proxy class. Uses `PureProxy' by
default.
--debug
-d
Turn on debugging prints.
--help
-h
Print this message and exit.
Version: Python SMTP proxy version 0.2
If localhost is not given then `localhost' is used, and if localport is not
given then 8025 is used. If remotehost is not given then `localhost' is used,
and if remoteport is not given, then 25 is used.
-c classname オプションは DebuggingServer だけでなく、以下のクラス名を指定して簡易的なSMTPサービスを提供することもできます。
Python Documentation: 20.13. smtpd — SMTP サーバー
Source Code: cpython/file/2.7/Lib/smtpd.py
