[HOME] [スクリーンショット] [ダウンロード] [ドキュメント] [バグ報告、制約等] [sourceforge.net]

rss2imap - Documentation

$Id: howtouse.html,v 1.3 2005/12/10 06:26:54 mumumu-org Exp $

[English/Japanese]

動作に必要なソフトウェア

rss2imapを使うのに必要なソフトウェアは以下の通りです。

rss2imap は,ほとんどの UNIX マシンで動作すると思います。
Windows 対応に関しては現在作業中です。

インストール

  1. インストールするマシンに、「rss2imapに必要なもの」で述べたPerlモジュールをインストールしておきます。
    perl -MCPAN -e shell
    cpan> install Mail::IMAPClient
    ....
    
  2. 「ダウンロードページ」の指示に従って、rss2imapをダウンロードします。
  3. ダウンロードしたrss2imapを任意の場所に展開し、展開先のディレクトリに移動します。
    tar xvfz rss2imap-xxxx.tar.gz
    cd rss2imap-xxxx
    
  4. conf/rss2imap.confを編集し、IMAP サーバへの接続設定を設定します。設定ファイルの文字コードはUTF-8です(conf/rss2imap-site.confも同様)。ファイルにある説明に従って、適宜設定して下さい。
  5. 次にconf/rss2imap-site.confを編集し、配送されるメールに関する設定を行います。ファイルにある説明に従って、適宜設定してください。「from」と「to」以外の値は基本的にデフォルトで良いでしょう。

とりあえず動かしてみる

まずは, 同梱されているサンプルの RSS URL リスト (sample.url) について動作させてみましょう。
-o オプションを使いデーモン化を抑制していることに注意して下さい。

./rss2imap -o sample.url

インストール時に「rss2imap.conf」で設定した接続設定が正しいものであれば、これだけで基本的に動作するはずです。

*「Authentication Failure」(認証失敗)や、「imap client initialize failed.」等のエラーが出る場合は、conf/rss2imap.confの設定を見直してみてください。

メーラから IMAP サーバにアクセスしてみてください. RSS から始まるフォルダが作成され, 記事が転送されていると思います.

rss2imap.confや、rss2imap-site.confで設定した設定値の殆どは、コマンドラインオプションで上書きすることができます。 オプションの詳細については、「./rss2imap --help」でご確認下さい。

以下はコマンドラインオプションを使った実行の一例です。

RSS サイトリストの編集

「とりあえず動かしてみる」で実行したsample.urlは、RSS サイトリスト(サイトリスト)と呼ばれ、取得するRSS サイトや、配送先のフォルダ名、 メールのフォーマット等が記述されています。rss2imapを実行するには、このファイルがひとつ以上必要です。

以下では、このファイルの編集方法について説明します。

RSS のサイトの情報をファイルに記述します. サイトの性質等によって適当なグループを作ります. グループは固有の設定と RSS の URL リストを持ちます. 各グループの間には1行以上のスペースを入れてください.

# グループ1 の固有設定
設定1: 値1
設定2: 値2
..
http://foo1/foo.rdf
http://bar1/bar.rdf

# グループ2 の固有設定
設定1: 値1
設定2: 値2
..
http://foo2/foo.rdf
http://bar2/bar.rdf

設定項目には以下があります.

設定名 値の条件 説明
folder フォルダ名 IMAP のフォルダ名です. このフォルダに配信されます.
デフォルトは RSS.%{channel:title} となっており, 後述するマクロを使い 動的に生成されます.
type (items|channel) items: RDF の item 1つづつを 1つのメールとして送信します (デフォルト)
channel: 個々の item は無視し, RDF の全体 (channel) を1つのメールとして送信します.
サイトの更新のみを知りたい時は channel を用います. サイトのアンテナのような動作が実現できます.
sync (yes|no) yes: フォルダ中のメールとRSS item の同期を取ります. RSS に登録されて いない item が フォルダに見つかると削除されます.
RSS でサイトのランキングが配信されていて, 逐次 item の内容が更新され る場合や, Hatena アンテナのような更新サイトリストのような場合は 同期を取ったほうが便利な場合があります.
no: 同期しません (デフォルト)
expire 整数 (N) N日以前の item を削除します. -1 と指定することで expire の動作を抑 制できます (デフォルト)
expire-unseen (yes|no) yes: expire の時に, 未読メールも削除します
no: 未読メールは削除しません (デフォルト)
expire-folder フォルダ名 expire の時に, 削除ではなく指定されたフォルダに移動します. デフォルトは 未定義となっており, 削除します.
また, 後述するマクロを使うことができます
subject 文字列 メールの Subject: ヘッダを指定します. 通常はデフォルのままでかまいません.
また, 後述するマクロを使うことができます
from 文字列 メールの From: ヘッダを指定します. 通常はデフォルのままでかまいません.
また, 後述するマクロを使うことができます

マクロは folder, expire-folder, subject, from の値を rss の内容から動的に生成する機能です.
具体的には以下があります.マクロがそれぞれの文字列に置換されます.

マクロ 説明
%{host} ホスト名
%{user} ユーザ名
%{rss-link} RSS の URL
%{last-modified} サーバが返す Last-Modifed ヘッダ
%{item:link} RSS item の link の内容
%{item:title} RSS item の title の内容
%{item:description} RSS item の description の内容
%{item:dc:date} RSS item の dc:date の内容 (未定義の場合もある)
%{item:dc:subject} RSS item の dc:subject の内容 (未定義の場合もある)
%{item:dc:creator} RSS item の dc:creator の内容 (未定義の場合もある)
%{channel:link} RSS channel の link の内容
%{channel:title} RSS channel の title の内容
%{channel:description} RSS channel の description の内容
%{channel:dc:date} RSS channel の dc:date の内容 (未定義の場合もある)

ただし, type: channel と指定した場合は, %{item:*} の値と %{channel:*} の 値は同じになります.

デフォルトとして以下のような設定になっています

subject:   %{item:title}
from:      <%{channel:title}>

例えば, 以下のように記述すると channel の title を使ってフォルダを動的に生成します.

folder: RSS.News.%{channel:title}
以下が具体例です.
# はてなアンテナ.
# アンテナの内容とフォルダ中のメールを同期する.
folder: RSS.Anntena
expire: 3
sync: yes
http://a.hatena.ne.jp/foo/rss

# フォルダごとに分けた Blog
# Friend
folder: RSS.Blog.Friend
expire: 5
http://tahoo.org/~taku/diary/cl.rdf
http://nais.to/~yto/clog/cl.rdf

# IT 
folder: RSS.Blog.IT
expire: 10
http://blog.japan.cnet.com/umeda/index.rdf
http://kimuratakeshi.cocolog-nifty.com/blog/index.rdf

# Idol
folder: RSS.Blog.Idol
expire: 15
http://manabekawori.cocolog-nifty.com/blog/index.rdf
http://rosa.cocolog-nifty.com/blog/index.rdf

# 自分の Wiki の更新日時だけを知りたい
# type: channel, 簡易アンテナとして動作
folder: RSS.Wiki
type: channel
http://tahoo.org/~taku/wiki/wiki.cgi?action=RSS
http://cl.naist.jp/index.php?cmd=rss

# ニュース配信サイトのタイトルからフォルダ名を自動生成
# 2 日ぶんの記事を残し, 未読でも削除する.
folder: RSS.News.%{channel:title}
expire: 2
expire-unseen: yes
http://www.atmarkit.co.jp/rss/rss2dc.xml
http://www3.asahi.com/rss/index.rdf
http://japan.cnet.com/rss/index.rdf
http://japan.linux.com/japanlinuxcom.rdf
http://slashdot.jp/slashdotjp.rss

RSS サイトリストのimport

rss2imapを使用するにはRSS サイトリストがひとつ以上必要でしたが、編集が面倒です。そうした方のために、rss2imapは、 opmlファイルから サイトリスト を自動生成(import)する機能を備えています。他のRSSリーダ等から移行してくる方は、 この機能を使うと便利です。

importを行うためには、以下のコマンドを実行します。-Iオプションを使ってopmlファイルを指定し、-O でサイトリストの出力先を指定します。

./rss2imap -I foo.opml -O output.url

出力されるサイトリスト(上のコマンドではoutput.url)では、conf/rss2imap-site.confのデフォルト値に従って設定値の 出力が行われます。また、フォルダ名のルートは「RSS」となります。

opmlファイルへのexport

rss2imapは、RSS サイトリストをopmlファイルとして出力(export)する機能も備えています。サイトリストを他のRSSリーダでも使える汎用的 な形で出力したい場合は、この機能が便えます。

exportを行うためには、以下のコマンドを実行します。-Eオプションを使ってサイトリストのファイルを指定し、-O でopmlファイルの出力先を指定します。

./rss2imap -E bar.url -O output.opml

text配送モードとHTML配送モード

rss2imapは、2種類のモードでメールを配信させることができます。テキストメールを配送する「text配送モード」、及びHTMLメールを配送する「HTML配送モード」です。

HTML配送モードを使うと、HTMLメールをインライン表示できるメーラでメールを見るときに便利です。かたや、HTMLメールを嫌う方のために、テキストでRSSの中身を表示するために用意されたのがtext配送モードです。配送されるメールのイメージの違いは、「スクリーンショット」のページを参照して下さい。

これらのモードは、conf/rss2imap.confの「delivery-mode」の値を変えることで設定できます。また、以下のように、コマンドラインオプション「-d」を使うことでその設定を上書きすることもできます。(以下はテキスト配送モードの場合)

./rss2imap -d text -o sample.url

現在では、テキスト配送モードは新たに実装された実験的なものであるため、HTML配送モードがデフォルトになっています。

デーモン化

動作確認ができたら, 定期的に動作するようにデーモン化します. -o オプションをはずして起動します.

./rss2imap sample.url

デフォルトで 60分ごとに更新作業を行います. 時間を変更する時は -i オプションを使います. (以下の例は30分ごとに変更)

./rss2imap -i 30 sample.url

RSS のサイトリストは, 配信開始時に毎回読みこまれます.
そのため, rss2imap が動作中にサイトリストを変更しても実用上はほとんど問 題ありません.

特殊フォルダ

rssimap は RSS.last-modified という特殊フォルダを作成します.
各 RSS の最終更新日時(last-modified) を1メールとして保存し, 無駄な更新作業を抑制するために使います.

もし強制的に更新を行いたい時は, 該当メールをメーラから削除してください

フォルダ名を変更する場合は -m オプションを使います.

./rss2imap -m FOO.BAR.RSS.last-modified

SourceForge.net reversethis -> {gro} {tod} {umumum} {ta} {umumum}