2006-02 / 2006-02-25

前のエントリ: 今日の戦利品 [ぬいぐるみ]
次のエントリ: SMTP-AUTH PLAIN認証 [SMTP]

SMTP応答のおしまい
2006-02-25-1 / カテゴリ: [MTA][SMTP] / [permlink]

とゆうアレで
メール送信ツール(Perlスクリプト)を改造することになった.「SMTP-AUTH対応にしてくれ」とゆーことだけど,内部で使っている Mail::Sender 自体が SMTP-AUTH を使えるので,大したことない.
Postfix に対して動かすと正常なんだけど,おまけで作った maileater なる MTA として動作するスクリプト(クライアントからのあらゆるコマンドに 200 OK 等を返すのみ.DATAとかはちゃんと<CR><LF>.<CR><LF>まで見るけど)があるんだけど,それを(AUTH対応にして)使うとなぜかタイムアウトしてしまう.なんでだろう.

結論
クライアントへの SMTP 応答は,「次行があるときはコードとキーワードの間にハイフンを付与」「最後の応答の時はコードとキーワードの間にスペースを付与」だ.
↓EHLOの応答
250-mozzarella
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250 8BITMIME
し,知らなかった…

スクリプトをチェックすると,最後の応答にもハイフンがついていたため,クライアント側が「サーバさん,次の応答まだ〜?」状態だったようだ.

RFC2821(日本語訳)4章から引用
一般に、EHLOへの応答は複数行になるだろう。応答のそれぞれの行はキーワードと、オプションで1つないし複数のパラメータを含んでいる。以下は複数行応答の一般的な構文であり、これらのキーワードは、最終行以外のすべての行ではコード(250)、ハイフンの続きのあとに来、最終行ではコード、スペースに続く。

今みると,1.5年前のスクリプト,きたねーなー…
まだ,リファレンスを知らなかったころの作品みたいだ.サブルーチンに引数を12個も渡してやがる(笑…えねぇ) なんつーか,一貫性がない.
前のエントリ: 今日の戦利品 [ぬいぐるみ]
次のエントリ: SMTP-AUTH PLAIN認証 [SMTP]

2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12

最終更新時間: 2013-05-02 16:12