2004-06-16 [長年日記]

[Q3] ドラフト

エディットビューを閉じずにドラフトとして保存する機能周り(BTS:132)を別ブランチでやっているのですが、いくつか問題があります。

一つ目は以前にも少し書きましたが、IMAP4の場合に保存した時にそのメッセージのIDが取れないため、次にドラフト保存したときや送信したときに古いコピーを削除することができない点です。とりあえずこれはあきらめてドラフトとして残りっぱなしになるということにしてしまいました*1。将来的にUIDPLUS対応で何とかするかもしれません。

二つ目はX-QMAIL-Macroをどうするかです。現在はSendでもDraftでもX-QMAIL-Macroを評価していますが、ドラフトの時には評価しないほうが良いのかどうかという問題です。標準のテンプレートでX-QMAIL-Macroを使っているのは以下の二つの場合です。

  1. 返信や転送したときに元のメッセージにマークをつける
  2. 再編集したときに元のメッセージを削除する

1に関してはDraftの時には評価されずSendの時だけ評価された方がうれしいです。しかし、2の方はどちらの場合にも評価されないと困ります。

さらにDraftの時に評価しないということにすると、X-QMAIL-Macroが付いた状態でメッセージボックスに保持して、次回編集時にそれを引き継ぐ必要があります。そのようにすると悪意のある人からX-QMAIL-Macroが付いたメッセージが送られてきたときに、誤ってそれを再編集しようとしてしまうと悪意のあるX-QMAIL-Macroを実行してしまう可能性があるという問題があります(現在はedit.templateでオリジナルのX-QMAIL-Macroは消してしまうので問題ありません)。

と考えると、以下のようにするのが良いのでしょうか?

  • Sendの時に評価されるX-QMAIL-Macroと、Draftの時に評価されるX-QMAIL-DraftMacroに分割する
  • 送信されるときにはX-QMAIL-Macroが評価されてから削除され、X-QMAIL-DraftMacroは評価されずに削除される
  • ドラフトとして保存するときには、X-QMAIL-Macroはそのままメッセージボックスに書き込まれ、X-QMAIL-DraftMacroは評価された後で削除される
  • 返信や転送マークはX-QMAIL-Macroでつける(ドラフトで保存してもマークは付かない)
  • 再編集したときに元のメッセージを削除するのはX-QMAIL-DraftMacroとX-QMAIL-Macroの両方で行う
  • edit.templateでは、元のメッセージにDraftフラグが付いている場合のみX-QMAIL-Macroを引き継ぐようにする

なんだか微妙ですね。

*1  ちなみにOEでも同じような状態になります

[SVN] Subversion 1.0.5

リリースされていました。セキュリティFixだそうです。svnserveを使っていなければ関係ないということですが、一応アップデートしてみました。


トップ «前の日記(2004-06-15) 最新 次の日記(2004-06-17)»