【注意】ここで紹介しているプログラムは、たまたま名前がカブってますが、UnderDone さんによるサービス FeedMail とはまったくの別物です。以下の内容について、UnderDone さんに問い合わせたりしないようにお願いします。
上の続き。クラスができたら、後は設定ファイルが 2 つ。まず、アプリケーション自体の設定ファイル。名前はなんでもいいが、とりあえず config.properties とか。
formatter=<Velocity テンプレートのパス> smtp.host=<SMTP サーバ> smtp.userid=<SMTP 認証で使うユーザ ID> smtp.password=<SMTP 認証で使うパスワード> sender.address=<From に使うメールアドレス> sender.name=<From に使う送信者名> recipient.address=<To に使うメールアドレス> mail.title=<Subject>
注意点は、
- Java の Properties ファイルなので、日本語文字 (というか、ASCII 外の文字) を使うときは native2ascii かける必要があり。英字だけにしとくのが無難かな。あ、あと、半角の円記号も。
- Velocity テンプレートのパスは実行ディレクトリからの相対指定でも OK。パス区切りは、Windows でも '/' で。
最後に、Velocity テンプレートファイル。これも名前はなんでもいいけど、僕はとりあえず simple.vm って名前で以下のようにした。
#foreach ( $channel in $channels ) --- ${channel.title} --- #foreach ( $item in $channel.items ) - ${item.title} / ${item.subject} date: ${item.date} desc: ${item.description} link: ${item.link} #end #end
似非 FeedMail から Velocity に渡してるのは、各フィードからの取得結果リスト (de.nava.informa.core.ChannelIF オブジェクト を java.util.List に入れたもの)。後は Informa の JavaDoc を見ればテンプレートは好きなようにいじれる。
ただし、上のテンプレートはめちゃくちゃ手抜きなので、複数行に渡るテキストが読みにくかったり、空欄のところに "null" という文字が出てしまう。個人で使う分には気にならないので、ほっといてある。