hns のメールによる日記の更新

### ハイパー日記システム Version 2.10

# hns のメールによる日記の更新

### mail2nikki.pl の修正

mail2nikki.pl は標準では ~/diary/bin/mail2nikki.pl にインストールされます．以前の mail2nikki.pl は mail2nikki.pl-old として保存されています．

1. $ cd ~/diary/bin
2. $ vi mail2nikki.pl
   `$mailAddress` に 報告を受けるメール・アドレスを記載
   `$mailAddress = 'hoge@foo.bar.jp';`
   `@certiy_mailAddress` に 投稿を許可するメール・アドレスを記載。複数のアドレスを指定できます。
   `@certiy_mailAddress = ('hoge@foo.bar.jp','geho@bar.foo.jp');`
   `$recvMailAddress` には， 処理結果メールの From: アドレスを記載します．
   `$recvMailAddress = 'hoge@foo.bar.jp';`
   `$MASTERPASSWD` に パスワードを記載します．1バイト英数字を指定してください．
   `$MASTERPASSWD = "himitsu";`
   `$hnfDir` は，hnf を分散ディレクトリ(~/diary/1999/ など年別のディレクトリ)に 作成する場合は 1, 日記ディレクトリ(~/diary/)に作成する場合は，0 に設定に設定します．
   `$LOGMODE` では，受けたメールをログに保存するかを指定します． 0 エラー時のみ保存, 1 常に保存, 2 一切保存しない，です． デフォルトは 0 となっています．
   `$MAILMODE` では，動作報告のメールを送信するか指定します． 1 動作報告メールを送る，0 動作報告メールを送らない，です． デフォルトは 0 となっています．
   `$NKF_USE` には，漢字コード変換に nkf を使用するかどうかを指定します． 1 nkf を使用する，0 jcode.pl を使用する，です． デフォルトは 1 となっています．
   `$sendmail` には，sendmail (または sendmail相当 の プログラム) へのパスを設定します．
   `$sendmail = "/usr/sbin/sendmail";`
   `$nkf` に，nkf へのパスを設定します． nkf を使用しない場合は関係ありません．
   `$nkf = "/usr/local/bin/nkf";`

### .forward の作成

メールで日記を更新するには，サーバが受け取ったメールを mail2nikki.pl に渡す必要があります． もっとも一般的と思われる .forward による例を紹介します．

1. $ cd ~
2. $ vi .forward
   hoge, "|/home/hoge/diary/bin/mail2nikki.pl "

### qmail の場合

メール・サーバが qmail の場合、日記用のアドレス(例えば hoge-diary@foo.bar.jp) を作成するのが 良いでしょう。

1. $ cd ~
2. $ vi .qmail-diary
   |/home/hoge/diary/bin/mail2nikki.pl

### .forward を書いてしまうと不都合な場合

hns を設置するサーバのアカウントを通常のメール・アドレスとして利用 している場合など、.forward を置くと不都合がある場合は、以下のような設定で mail2nikki 専用のアドレスを作ることがで きます。

1. /home/hoge/diary/hoge-nikki
   などのファイルを作り、その中に
   "|/home/hoge/diary/bin/mail2nikki.pl"
   と書いておく。 このファイルの所有者は自分自信、パーミッションは 644 としておくこと(他人が書き込めるとセキュリティ上の危険があります)。
2. /etc/aliases
   に次の行を追加します。
   hoge-nikki: :include:/home/hoge/diary/hoge-nikki
3. # newalias
   で aliasデータベースを更新します．
   こうすることで、hoge-nikki@foo.bar.jp にメールを送ると、 /home/hoge/diary/hoge-nikki の所有者(自分自身)で mail2nikki.pl が起動され、日記を更新することができます。
   但し、この方法は古い sendmail では使用できないことがあります。 /etc/aliases を自分で編集できない場合は、そのホストの管 理者に相談してください。

### 日記の登録方法

メールの Subject には，
hnf:ADD, hnf:DEL, hnf:DEL&ADD, hnf:GET
hns:ADD TODO, hns:DEL TODO, hns:DEL&ADD TODO, hns:GET TODO
hns:ADD PLAN, hns:DEL PLAN, hns:DEL&ADD PLAN, hns:GET PLAN
hns:ADD REPEAT, hns:DEL REPEAT, hns:DEL&ADD REPEAT, hns:GET REPEAT
のいずれかを指定します．日記の追加は hnf:ADD， hnf:GET はすでにある hnf を取り出し，メールで送ります． 日記の削除は hnf:DEL， hnf:DEL&ADD は，今日(または指定日)の日記を入れ換えます．
TODO, PLAN, REPEAT はそれぞれ todo および 予定ファイル、繰り返し予定ファイル を 操作する時に指定します。

日記の本文は，
PASSWORD: himitsu
DATE: 19981109
で始めます．DATE: は省略可能です．省略した場合は， 今日が指定されます． PASSWORD:, DATE: の次には，ユーザ変数を書きます． ユーザ変数は，1行に1ずつ，変数名と内容はスペースで区切ります． ユーザ変数の変数名の後には，: はつけません．
TENKI 晴
その後，改行して，hnf そのものを記載します． なお，すでにその日の hnf が存在する場合，ユーザ変数は， 書き直されません．ユーザ変数の内容を変更したい場合は， GET で hnf を取り出して，その後，DEL&ADD で入れ換えしてください．
END
と記入すると，日記の終了です．それ以降は登録されません．

例：
Subject: hnf:ADD
(本文)
PASSWORD: himitsu
TENKI 晴
(必ず1行空白行を入れます)
NEW mail2nikki のテスト
メールによる日記更新のテストです.
END

例：
Subject: hns:ADD PLAN
(本文)
PASSWORD: himitsu
(必ず1行空白行を入れます)
4/8 花まつり
END

### ハイパー日記システム Version 2.10

Index