telnetでSMTP-AUTH
動作確認として、SMTP-AUTHを使用した上で、メール送信を行ってみます。
送信に使うユーザをあらかじめSASLデータベースに登録します。
[応答]パスワードを入力します。
Password:
Again (for verification):
ユーザの登録確認は’ sasldblistusers2’コマンドで実行します。
[コマンド]
# sasldblistusers2
[応答]
sender@senderdomain.org: userPassword
また、SMTP-AUTHでログインする際のユーザ名とパスワードは
BASE64エンコードされている必要が有ります。
a2VpAGtlaQBrZXk3OTI3
ユーザ認証を使用したメール送信を行うには、HELOコマンドではなく
拡張コマンドであるEHLOを使用します。
Trying ::1…
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
220 mail.sender.org ESMTP Postfix [EHLOコマンドを使う] ehlo localhost
250-mail.sender.org
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-AUTH PLAIN LOGIN GSSAPI
250-AUTH=PLAIN LOGIN GSSAPI
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
このサーバではユーザ認証(AUTH)にPLAINとLOGINが
対応している事が分かります。
AUTH PLAIN認証ではユーザ名とパスワードが合わさったものを
Base64でエンコードし認証文字列として使用します。
[応答] 235 2.7.0 Authentication successful
また、AUTH LOGIN認証ではユーザ名とパスワードをそれぞれ
Base64でエンコードし認証文字列として使用します。
auth login
[応答] 334 VXNlcm5hbWU6
ezct63lz(BASE64エンコードされたユーザ名))
334 UGFzc3dvcmQ6
f2V8NzkYnW==(BASE64エンコードされたパスワード)
235 2.7.0 Authentication successful
ユーザ認証が成功すれば、後はMAILコマンドを使用し、
メールを送信します。
mail from:sender@sender.org
250 2.1.0 Ok
rcpt to:recipient@recipient.com
250 2.1.5 Ok
data
354 End data with .
From:sender@sender.org
To:recipient@recipient.com
Subject:test
test
.
250 2.0.0 Ok: queued as 24A66A018C
quit
221 2.0.0 Bye
Connection closed by foreign host.
POP before SMTPやSMTP-AUTHを使用する事により、そのサーバを使用して
メールを送信するユーザを限定する事で、不正なSMTP通信を防ぐ事が出来ます。