12.SMTP認証(SMTP-AUTH)を使って送ろう
メールが送れることが確認できたら、SMTP認証の設定で送る設定に変更してみる。SMTP認証とは、電子メールを送信する際に、送信者がユーザであることを確認するためにユーザー名とパスワードの確認を行う機能のこと。SMTP-AUTHとも言う。
プロバイダなど、「POP before SMTP」という方法を採用しているSMTPサーバーもまだまだあるが、実はメール送信のセキュリティ面からすれば、非常に危ういものなのだ。絶対に避けなければいけない。次のカコミを読んでほしい。
-
"POP before SMTP"の危険性について
最近は常時接続があたりまえになり、数分間隔でメールチェックしている利用者も増えている。おそらくあなたもそうだろう。
"POP before SMTP"の基本的な仕組みは、POP3への認証後、一定時間は、そのユーザーアカウントでの送信は、誰が送信してもスルーになってしまっている。
つまり、サーバ側で "POP before SMTP" を設定し、5分間スルーにしているときは、メールクライアントが5分未満の時間間隔によるメールチェックを行っているとすると、このユーザーのメールアカウントさえわかっていれば、簡単に第三者がメール送信できてしまう。とても大きなセキュリティホールになる可能性があるのだ。
SMTP認証を採用することにより、SPAMメールの中継など、第三者によるメールサーバーの不正利用を防ぐことができるのだ。
最初に、「E-Post Mail Control」を開き、サービスがSMTP認証の実行を可能にする設定を行う。
E-Post Mail Control
→[サービス制御]タブ
→[SMTP認証方法]=「PLAIN LOGIN CRAM-MD5」を選択
→[セキュリティレベル]=「認証ファイル」を選択
適用ボタンをクリックした後、EPSTRSを再起動させる。
次に、「E-Post Mail Account Manager」に切り替え、各ユーザーが、SMTP認証/APOP認証での接続有無の設定を行う。
E-Post Mail Account Manager
→[ドメインツリー]を選択
→[アカウント]をクリック
→[user1]をダブルクリック
→[アカウント設定ダイアログ]=「SMTP-AUTH & APOPを使用」
チェックボックスをオン
[OK]ボタンをクリックし、ダイアログボックスを閉じる。
すると、「SMTP-AUTH & APOPを使用」が有効に設定変更されたことによって、SMTP認証パスワードの入力をうながすダイアログボックスが表示されるので、正しいSMTP認証パスワードを入力する。
以上でSMTP認証を有効にしたサーバー側の設定は完了する。
実際に、メールクライアント側でも、メールの送信がSMTP認証にて行えるようになっているか、コマンドプロンプトを開き、telnetコマンドを使って、直接SMTPに接続し、送信テストを行ってみよう。ただし、実際には、SMTP認証での送信テストなので、telnetコマンドを使うより、メーラーを使った方が試験は簡単だ。telnetコマンドを使うと、AUTHログイン時にエンコードしたパスワード文字列を送出しなくてはならないからだ。下記画面では「AUTH PLAIN AFVzZXIx……」個所がそれに該当する。人間の頭の中ではとてもエンコードできないので、エンコードしたパスワード文字列を生成するには、エンコードツールなどの手助けがないと実際には難しい。
Telnet 192.168.0.103 smtp<CR> 220 test-sample.jp E-POST ESMTP Receiver (4.xx)...... EHLO<CR> 250-test-sample.jp Hello [xxxx.xxx.xxxx.xxxx], pleased to meet you 250 AUTH PLAIN LOGIN CRAM-MD5 AUTH PLAIN AFVzZXIxQHRlc3Qtc2FtcGxlLmpwAHVzZXIxMjM0 235 Authentication successful. mail from: <user1@test-sample.jp><CR> 250 <user1@test-sample.jp>... Sender ok. rcpt to: <user1@test-sample.jp><CR> 250 <user1@test-sample.jp>... Recipient ok. data<CR> 354 Start mail input;id <BXXXXXXXXXX> end with <CRLF>.<CRLF> subject: test<CR> from: <user1@test-sample.jp><CR> to: <user1@test-sample.jp><CR> <CR> test.<CR> .<CR> 250 Message received ok. quit<CR> 221 test-sample.jp closing connection. 下線の箇所がコマンドプロンプトから入力する内容 <CR>は、<Enter>キーの入力を表す |
←自分で入力する内容 →SMTPサービスが応答を返す。 ←拡張SMTPであることを宣言 →SMTP認証が利用可能であることを回答 ←PLAIN方式でアカウントとパスワードを送信 →認証成功…[1] ←user1@・・から →送信者OK ←user1@・・あてへ →送信先OK ←ヘッダと本文の書き始め ←ヘッダ : : ←ヘッダと本文の区切り ←本文 ←データ終了ピリオド →受領完了 ←接続終了 |
-
SMTP認証が失敗するとき
[1]の部分で "535 5.7.0 Authentication failed(AUTH failed)" という応答メッセージが返ってきて、送信ができないときは、指定したアカウントかパスワードに間違いがあることを示している。
アカウントマネージャで設定したアカウントやパスワードを再度試してみよう。