SSブログ

ESMTPの認証とか [PC]

自社製品にて自作MUAが組み込んであるのだけど、随分前に更新していらい全くノータッチなので時代遅れになって微妙に使えなくなっている罠。作ったときにはSMTP認証(ESMTP)とか普及してなかったよ...orz。

んで、ESMTPへの対応依頼があったので調べてみた。後日の為に軽く仕様をまとめておくことにする。
@ITが詳しいな。
公開と隠ぺいのジレンマ「SMTP~後編」

まず使われるポートはSMTPの25とは異なり 587 を使うらしい。

んでSMTPで接続後に最初に送信する HELO が EHLO になります。

EHLOの応答は以降はこんな感じになります。(Outlook ExpressでAUTH LOGINした場合)
EHLO 192.168.11.100
250-XXX.XXX.XXX.ne.jp, pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE 10240000
250-DSN
250-AUTH LOGIN PLAIN
250-STARTTLS
250-DELIVERBY
250 HELP
AUTH LOGIN
334 XXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXX
334 XXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXX
235 2.0.0 OK Authenticated
MAIL FROM: 

「250-AUTH XXXX」の応答で接続したSMTPサーバがサポートしているSMTP認証の方式が分かります。

SMTP認証の種類としては
・AUTH CRAM-MD5
・AUTH PLAIN
・AUTH LOGIN
などがあります。

AUTH CRAM-MD5はメールサーバに対して「AUTH CRAM-MD5」を送信するとチャレンジ文字列が返信されるので、「パスワード+" "+チャレンジ文字列」をMD5して、「ユーザー名+MD5した結果」をBase64して送ります。
こいつだけが明示的にパスワードを暗号化して送信します。

AUTH PLAINはメールサーバに対して「ユーザー名+NULL+ユーザー名+NULL+パスワード」をBase64して「AUTH PLAIN Base64した値」送ります。

AUTH LOGINの仕様は共通化されてないようですが、メールサーバに対して「AUTH LOGIN」を送信した後にBase64した「ユーザー名」→Base64した「パスワード」を順に送ります。
仕様が共通化されていないにも関わらず、Outlook Expressの標準なので一番普及している罠。

いっぱいあって面倒ですなぁ...orz。
というかSMTP認証もそうだけど、メール本文は暗号化されないので根本的にはTLSにも対応しなくちゃいかんことにならんのか?
SSLだけは勘弁してもらいたい脳。

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

健康診断当日の朝白い鯛焼き ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。