smtpd
簡単に SMTP サーバを作れるようにするライブラリです。
ダウンロード
必要なもの
ライセンス
このプログラムは Ruby ライセンスに従います。
機能
SMTP サーバとして動作します。HELO, EHLO, MAIL, RCPT, DATA, RSET, NOOP, QUIT コマンドを認識します。
HELO, EHLO コマンドに渡されたドメイン名は @helo_name で参照できます。
MAIL コマンドに渡されたメールアドレスは @sender で参照できます。
RCPT コマンドに渡されたメールアドレスは @recipient で参照できます。
クラスメソッド
- SMTPD::new(sock, domain)
-
ソケット sock に対して動作するような SMTPD オブジェクトを返します。
domain は HELO に対して返答するドメイン名です。
インスタンスメソッド
- SMTPD#start()
-
SMTP サーバを開始します。
- SMTPD#line_length_limit, SMTPD#line_length_limit=n
-
クライアントからの1行の入力が n バイトを超えるとエラーになります。
デフォルトは nil で、エラーにはなりません。
- SMTPD#input_timeout, SMTPD#input_timeout=n
-
クライアントからの入力が n 秒間無いとエラーになります。
デフォルトは nil で、エラーにはなりません。
- SMTPD#error_interval, SMTPD#error_interval=n
-
エラー発生時に n 秒間 sleep します。デフォルトは 5秒です。
- SMTPD#use_file, SMTPD#use_file=bool
-
真の値を設定すると、DATA コマンドで渡されるデータを、文字列としてではなくファイルとして data_hook メソッドに渡します。
デフォルトは nil です。
- SMTPD#max_size, SMTPD#max_size=n
-
DATA コマンドで渡されるデータの大きさが n バイトを超えるとエラーになります。
デフォルトは nil で、エラーになりません。
- SMTPD#helo_hook(domain)
-
HELO, EHLO コマンド時に呼び出されるメソッドです。
引数は HELO, EHLO コマンドに渡されたドメイン名です。
-
SMTPD#mail_hook(sender)
-
MAIL コマンド時に呼び出されるメソッドです。
引数は MAIL コマンドに渡されたメールアドレスです。
- SMTPD#rcpt_hook(rcpt)
-
RCPT コマンド時に呼び出されるメソッドです。
引数は RCPT コマンドに渡されたメールアドレスです。
- SMTPD#data_each_line(line)
-
DATA コマンド時にクライアントから渡された1行毎に呼び出されるメソッドです。
引数はメッセージの行です。
- SMTPD#data_hook(data)
-
DATA コマンド時に呼び出されるメソッドです。
引数は DATA コマンドに渡されたメッセージ本文です。
- SMTPD#rset_hook()
-
RSET コマンド時に呼び出されるメソッドです。
- SMTPD#noop_hook()
-
NOOP コマンド時に呼び出されるメソッドです。
- SMTPD#quit_hook()
-
QUIT コマンド時に呼び出されるメソッドです。
- SMTPD#error(msg)
-
SMTP のエラーを発生させます。
msg は数字3桁で始まる文字列です。
履歴
- 0.1.1
-
- use_file=true時、data_hook後に一時ファイルを削除していなかった。
- 0.1
-
- 0.0.2
-
- use_file の追加
- max_size の追加
- 0.0.1
-
とみたまさひろ
Last modified: Mon Jan 3 10:39:18 JST 2005