自作メーラー 概要設計
Samurize のプラグイン mailcounts(Loki氏作) と同等の処理を C++ で作成する。
mailcounts 同様、サーバと通信してヘッダ情報を取り出すモジュールと
Samurize 表示用にテキストを抽出するスクリプトの 2層構成とする。
処理の流れは以下のとおり。
<ヘッダ情報取得>
- boost::asio を使ってPOP3サーバとのセッションを生成
(telnet server 110 と同様の通信で『USER』『PASS』『STAT』を実行)
- STAT でメール総数が取得できるので、数字の大きい方から
指定数を順に『TOP <index> 0』でヘッダを受信
- 『Date:』のデータ部をUTCに変換して格納
- 『Subject:』のデータ部をデコードして格納
とりあえずはBase64、JISの組み合わせのみに対応
- 『From:』のデータ部をデコードして格納
<>で囲まれた部分はアドレスとして認識
- 『QUIT』でセッション終了
- 取得したヘッダ情報をテキストファイルに書き出し
<抽出スクリプト>
- 上記の処理と処理が重ならないよう排他制御的なところ(考え中)
- 最新から n番目の情報を指定されたフォーマットで返す
Samurize には n個のメータを作成
Base64のデコード処理、JIS⇒SJISの変換処理も一から作ったので意外と大変。
0 件のコメント:
コメントを投稿