Landscape トップページ | < 前の日 2004-05-19 2004-05-20 次の日 2004-05-21 >

Landscape - エンジニアのメモ 2004-05-20

POP でメールヘッダだけを取得する TOP コマンド


* POP でメールヘッダだけを取得する TOP コマンド

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [メール]

メールシステムを活用するツールを書きたくなった。

POP3 でメールサーバにアクセスして、メールのヘッダだけ取得したい。LIST コマンドを試してみたが、ヘッダは取得できない。なにか良い方法とか便利なコマンドとか無いかなあと思い、Google で pop コマンド ヘッダ 取得を検索するとヒット。TOP というコマンドを使えばいいことがわかった。

ラスト・ワン・ホップ プロトコル「POP3」
http://www.atmarkit.co.jp/fnetwork/rensai/netpro07/netpro01. ...
●TOP メッセージ番号 Line数
TOPコマンドはRETRコマンドに酷似している。RETRは単にメールメッセージ全体をダウンロードするだけだったが、TOPコマンドは、Line数を指定することでダウンロードするメールメッセージのボディーの行数を指定できる。ヘッダーは必ずダウンロードされる。0とするとメールヘッダーのみ(メールメッセージのうち、最初の空行の部分まで)となるので、主にメール一覧のみ必要としている場合などによく使用される。

- RFC 1939 post office protocol - version 3

RFC1939 によると TOP は POP3 においてはオプション扱い。

http://www.ietf.org/rfc/rfc1939.txt
http://www.se.hiroshima-u.ac.jp/~isaki/rfc/rfc1939-jp.txt
7. Optional POP3 Commands
TOP msg n

  Arguments:
      a message-number (required) which may NOT refer to to a
      message marked as deleted, and a non-negative number
      of lines (required)

  Restrictions:
      may only be given in the TRANSACTION state

  Discussion:
      If the POP3 server issues a positive response, then the
      response given is multi-line.  After the initial +OK, the
      POP3 server sends the headers of the message, the blank
      line separating the headers from the body, and then the
      number of lines of the indicated message's body, being
      careful to byte-stuff the termination character (as with
      all multi-line responses).

      Note that if the number of lines requested by the POP3
      client is greater than than the number of lines in the
      body, then the POP3 server sends the entire message.

  Possible Responses:
      +OK top of message follows
      -ERR no such message

  Examples:
      C: TOP 1 10
      S: +OK

      S: <the POP3 server sends the headers of the
          message, a blank line, and the first 10 lines
          of the body of the message>
      S: .
          ...
      C: TOP 100 3
      S: -ERR no such message

telnet で POP サーバのポート110 に接続して TOP を試してみると、以下のようにメールヘッダだけを表示してくれた。

$ telnet pop.example.com 110
Trying 10.100.79.7...
Connected to pop.example.com
Escape character is '^]'.
+OK POP3 server ready
USER test063
+OK Password required for test063
PASS PASSWORD
+OK test063's maildrop has 1 messages (2052 octets)

TOP 1 0
+OK
Message-Id: <200405050800.d8e8fca2dc0f896fd7cb4cb0031ba249@example.com>
Date: 05 May 2004 17:00:00 +0900
Mime-Version: 1.0
From: "Saito Hiroaki"
<sonic64@example.com>
Subject: 5/5 2
To: "test063@example.com"
<test063@example.com>,
"sonic64@example.com"
<sonic64@example.com>
X-UIDL: 200405050800.d8e8fca2dc0f896fd7cb4cb0031ba249@example.com
Status: RO
Content-Type: text/plain; charset=iso-2022-jp

.

RFC 1939では TOP コマンド使用時の本文行数指定は必須となっているが、私が利用している POP サーバでは、行数を指定しない場合は 0 で指定したときと同じ挙動を示した。POP サーバの種類とバージョンは不明だけど。

TOP 1
+OK
Message-Id: <200405050800.d8e8fca2dc0f896fd7cb4cb0031ba249@example.com>
Date: 05 May 2004 17:00:00 +0900
Mime-Version: 1.0
From: "Saito Hiroaki"
<sonic64@example.com>
Subject: 5/5 2
To: "test063@example.com"
<test063@example.com>,
"sonic64@example.com"
<sonic64@example.com>
X-UIDL: 200405050800.d8e8fca2dc0f896fd7cb4cb0031ba249@example.com
Status: RO
Content-Type: text/plain; charset=iso-2022-jp
.


すべての記事の見出し (全1029件)
全カテゴリの一覧と記事の数
カテゴリごとに記事をまとめ読みできます。記事の表題だけを見たい場合は、すべての記事の見出し (カテゴリ別表示) へ。

直近30日分の記事
2007-04-23 (Mon)
2007-03-07 (Wed)
2007-02-27 (Tue)
2007-01-17 (Wed)
2007-01-15 (Mon)
2007-01-14 (Sun)
2007-01-08 (Mon)
2006-12-01 (Fri)
2006-11-22 (Wed)
2006-11-20 (Mon)
2006-11-19 (Sun)
2006-09-30 (Sat)
2006-08-29 (Tue)
2006-08-04 (Fri)
2006-07-27 (Thu)
2006-07-23 (Sun)
2006-07-17 (Mon)
2006-07-10 (Mon)
2006-07-06 (Thu)
2006-07-03 (Mon)
2006-06-29 (Thu)
2006-06-28 (Wed)
2006-06-27 (Tue)
2006-06-25 (Sun)
2006-06-19 (Mon)
2006-06-18 (Sun)
2006-06-15 (Thu)
2006-06-11 (Sun)
2006-06-01 (Thu)
2006-05-30 (Tue)
プロファイル
斎藤 宏明。エンジニアです。宇都宮市に住んでいます。
リンク
RSS
スポンサードリンク
Powered by
さくらインターネット

© 斎藤 宏明 Saito Hiroaki Gmail Address
Landscape - エンジニアのメモ http://sonic64.com/
Landscape はランドスケープと読みます。
ひらがなだと らんどすけーぷ です。