13.POP3・IMAP4でメールを取り出そう

前章でメールを送ったので、実際に届いているかどうかを確認してみよう。
まず、アカウントのメールボックスにメールが届いているか確認しよう。
それには、メールボックスフォルダを開き、フォルダ内に拡張子.MSGのファイル群(BXXXXXXXXXX.MSG)が作成されているかどうか確認する。
メールボックスのフォルダを開くには、次の方法で行うと操作が簡単だ。

  1. アカウントマネージャーに切り替え、User項目を選択した後、右側に表示されたアカウント user1 を選択。
  2. 続いて右クリックメニューから「エクスプローラ(X)」を選択。

メールボックスのフォルダが開き、拡張子.MSGのファイル群(BXXXXXXXXXX.MSG)が作成されていることが確認できる。

作成されたメールについて

作成されているメッセージファイル(BXXXXXXXXXX.MSG)は、テキストファイルなので、メモ帳で開くことができる。
ファイルをメモ帳で開くと、最初に送った手順どおり、ヘッダ情報と本文が記述されているのが確認できるはずだ。
なお、漢字やかな、カタカナなどの全角文字は、Shift-JISでなく、JISに変換されて保存されているため、メモ帳では全角文字部分が文字化けを起こしてそのまま読むことはできない。
全角文字部分まで正しく表示させたいときは、高機能エディタを持ち出すか、FirefoxやIEなどのブラウザソフトで読み込んでみよう。ブラウザソフトには、文字コードを自動認識したり、手動で切り替えたりする機能があるので、全角文字部分も表示させることができる。ただし、最近のIE8などのブラウザでは、セキュリティが高められたためか、.MSGファイルを直接開くことはできないようだ。



メールボックスのファイル暗号化

なお、ファイルを盗み見されたくないようにメールボックスに格納されるファイルを平文のテキストファイルではなく、中身が暗号化されたファイルにしたい場合は、次のように行えばよい。
E-Post Mail Controlに切り替え、「サーバー設定」タブを選択、「メールボックスフォルダ」の右側にある「Plain」と表示されているリストボックスを「Encode」に変更し、「適用(A)」ボタンをクリックする。
その後、「サービス制御」タブに切り替え、EPSTDSサービスを再起動させる。



これ以降の送受信メールは、テキストエディタやブラウザソフトで開いて、文字コードをJISに切り替えても、読めないようになり、.MSGファイルは以降、暗号化されたデータとして保存されるようになったことがわかる。


以上でメールボックスフォルダにメッセージファイルが実在することが確認できた。
この次は、POP3サービスを使ってメールデータを取り出せるか確認してみよう。
これも、ふだんメールクライアントソフトで操作している代わりに、telnetコマンドを使ってPOP3プロトコルで接続して取り出せるか確認してみたい。

コマンドプロンプトからのPOP3受信
Telnet 192.168.0.103 pop3<CR>
+OK E-POST POP3 Server ......
USER user1@test-sample.jp<CR>
+OK Password required for user1@test-sample.jp
PASS pass1234<CR>
+OK user1@test-sample.jp's mailbox has 2 message(s) ...
retr 1<CR>
   :
.
retr 2<CR>
   :
.
QUIT<CR>
+OK test-sample.jp POP3 server signing off (2 messages left)

下線の箇所がコマンドプロンプトから入力する内容
<CR>は、<Enter>キー入力を表す

←自分で入力する内容
→POP3サービスが応答を返す
←取り出したいメールアカウント名

←POP3認証パスワード
→メールボックスがオープンされたメッセージ[1]
←1番目のメッセージ
  :

←2番目のメッセージ
  :

←終了
→接続終了

これで、telnetコマンドからPOP3プロトコルを使って、メールデータが読み出せた。

POP3でログインに失敗する時

応答メッセージが、-ERR KKK logon failed (-1) in PASS と返ってきてしまい、エラーになったときは、アカウント名かパスワードかが間違えて入力されているはずだから、もう一度やり直して確認しよう。

続いて、IMAP4プロトコルで受信メールを読み出せるか確認する。
これも、ふだんメールクライアントで操作している代わりに、telnetコマンドを使って接続してIMAP4プロトコルで取り出せるか確認してみよう。

コマンドプロンプトからのIMAP4受信
Telnet 192.168.0.103 imap4<CR>
* OK E-POST IMAP4rev1 Server....
. LOGIN user1@test-sample.jp user1234
. OK LOGIN completed
. SELECT INBOX
* 2 EXISTS
* 2 RECENT
* OK [UNSEEN 2] Message 2 is first unseen
* OK [UIDVALIDITY XXXXXXXXX] UIDs valid
* OK [UIDNEXT XXXX] Predicted next UID
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Deleted \Seen \*)] Limited
. OK [READ-WRITE] SELECT completed
. FETCH 1:2 rfc822
  :
  :
. OK FETCH completed
. LOGOUT
* BYE E-POST IMAP4rev1 Server terminating connection
. OK LOGOUT completed

下線の箇所がコマンドプロンプトから入力する内容
<CR>は、<Enter>キー入力を表す

←自分で入力する内容
→IMAP4サービスが応答を返す
←読み出したいアカウント名
→ログインメッセージ[2]
←SELECTコマンド










←1,2番目のメッセージをまとめて取り出す
  :
  :
←LOGOUTコマンド
→接続終了


これで、telnetコマンドから、IMAP4プロトコルを使って、メールデータが読み取り出せた。

IMAP4でログインに失敗する時

応答メッセージが . NO LOGIN fails と返ってきて、エラーになってメールボックスが開けないときは、アカウント名かパスワードかが間違えて入力されているはずなので、もう一度トライして確認しよう。



書籍『E-Post Mail Server完全ガイド』ご案内