This page contains JAPANESE only and best viewed with Firefox 1.0 or higher
in 1024 x 768 mode.
LIRS|RSS
ここの管理人の愚痴と忘備が書かれたページです。
検索サイトからこのページに辿り着いた皆さん…過去ログに目的の一文があるかも…
右端の月毎のログを開いて確かめてみてくださいな…
ときどきエラーメッセージがでるかもしれません。何かを試している最中です…
気象庁|週間天気予報:東京都 | 雨量情報
忘備RTM
トップ «前の日記(2004-03-06[Sat]) 最新 次の日記(2004-03-08[Mon])» 編集
2000|01|
2002|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|12|
2010|05|07|08|09|10|11|12|
2011|01|04|11|
2013|01|
2019|02|03|09|10|11|12|
2020|01|03|08|09|10|12|
2021|01|04|05|09|
2023|09|10|11|

雑記帖


2004-03-07[Sun] [長年日記]

秋葉原巡航

何やら寒いなぁと思いながら歩いていたら、雪がちらつきました。直ぐに止んでましたけどね。

[tDiary]mailで更新してみる(2)

ここを携帯のmailで更新しようと昨日の深夜からチョビチョビいじり始めてみたは良いのですが不明点続出。っていうか、いままで避けてきたあたりをいじらないと、posttdiary.rbというプラグインが動かないようなのであります。mailの設定っていじっているうちにドツボにはまってしまいそうなんで、積極的に避けてたんですけどね。 さて、posttdiary.rb解説を読んでウチでできそうな方法は、
  1. .forwardで届いたメールをprocmailに引き渡す
  2. procmailで更新用のメールだけを濾す
  3. 濾して残ったメールをposttdiary.rbに引き渡す
とすると良いようです。他にも更新用のPOPアカウントを専用に用意して、そのままposttdiary.rbに引き渡すことも、勿論可能です。そうするとprocmailは必要なくなります。

.forwardの書き方

単純にメールアドレスを記入するだけでそのアドレスに転送されるのですが、今回はprocmailへメールを中継するのでそれを記述する必要があります。で、来たメールをとりあえず全てを残し、ついでにuser@exsmple.co.jpへ転送し、procmailへも渡す。そんな感じだと

\POPアカウント
user@exsmple.co.jp
"|exec /usr/local/bin/procmail #ユーザ名"

で良いようです。3行目の部分をprocmailの"forward"サンプルを元に書き直すと

"|IFS=' ' && p=/usr/local/bin/procmail && test -f $p && exec $p -Yf- || exit 75 #ユーザ名"

となります。

  • "|"はプログラムの起動
  • "IFS=' '"は内部フィールド分離子をスペースに指定
  • "test -f $p"は"test -f /usr/local/bin/procmail"に置き換えられてファイルの有無の確認
  • "exec $p -Yf-"でprocmailの実行。
    • -YオプションはContent-Lenghtを無視。
    • -fオプションはFrom:行を引数で書き直しますが"-"の場合はFrom:行のタイムスタンプのみを更新
  • "||"は論理和。左の第1式と右の第2式のうちどちらかが真であれば式全体は真。式の評価を行うときは第1式が真であれば第2式は評価されません。第2式は第1式が偽の時のみ評価されます。
  • "exit 75"は「配送が一時的に失敗したので後で再送しなさい」
  • "#ユーザ名"は必須ではないが誤動作を防ぐためでユニークであればユーザ名でなくても良い
  • 行頭行末のダブルクォーテーションは必須

あちこちをぐぐって、本をペラペラめくってみたところ上記のような意味らしい。で、必要の無さそうなところを省いてしまう、つまり「procmail自体が存在しないことは想定外」「-Yのオプションは関係無さそうなので取り外す」で、そうすると、

"|IFS=' ' && exec /usr/local/bin/procmail -f- || exit 75 #ユーザ名"

のようになって、procmailの解説で良く目につく書き方になる。

.procmailrcの書き方

.forwardによってprocmailに引き渡されたメールを今度は必要なモノだけを濾し取らなければなりません。一般的にSPAMをフィルタリングするために使われたりするんで、結構細かく設定することができるようです。その設定を記述するファイルがレシピファイルと呼ばれています。ファイルは".procmailrc"で$HOMEに置きます。

今回の目的は、普通のメールではなくて「携帯からのmailで更新したい」ということ。procmailは、メールのヘッダと本文、どちらも濾し取る条件として使うことができる。本文部分はココへの書き込みに使うため更新メールであることを示す特別な文字を入れることは避けたい。ヘッダ部分を条件に使う。

レシピファイルは基本的に環境変数の部分とフィルタリング処理を記述したレシピの部分の2つに分かれます。重要なのはレシピの部分。その書式は、

#コメント
:0 [<フラグ>][:<ロックファイル名>]
<条件文・1行1条件・0行以上>
<アクション・1行>

となります。サンプルとして、

# SAMPLE
:0 H :
* ^From: user
| /bin/posttdiary.rb

というような感じになる。

[]

2000|01|
2002|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|12|
2010|05|07|08|09|10|11|12|
2011|01|04|11|
2013|01|
2019|02|03|09|10|11|12|
2020|01|03|08|09|10|12|
2021|01|04|05|09|
2023|09|10|11|
トップ «前の日記(2004-03-06[Sat]) 最新 次の日記(2004-03-08[Mon])» 編集

Valid CSS! マピオン もじら組 mozillaZine 日本語版 Google NEWS OpenOffice.orgの入口 NDL-OPAC Webcat Plus