エディットビューを閉じずにドラフトとして保存する機能周り(BTS:132)を別ブランチでやっているのですが、いくつか問題があります。
一つ目は以前にも少し書きましたが、IMAP4の場合に保存した時にそのメッセージのIDが取れないため、次にドラフト保存したときや送信したときに古いコピーを削除することができない点です。とりあえずこれはあきらめてドラフトとして残りっぱなしになるということにしてしまいました*1。将来的にUIDPLUS対応で何とかするかもしれません。
二つ目はX-QMAIL-Macroをどうするかです。現在はSendでもDraftでもX-QMAIL-Macroを評価していますが、ドラフトの時には評価しないほうが良いのかどうかという問題です。標準のテンプレートでX-QMAIL-Macroを使っているのは以下の二つの場合です。
1に関してはDraftの時には評価されずSendの時だけ評価された方がうれしいです。しかし、2の方はどちらの場合にも評価されないと困ります。
さらにDraftの時に評価しないということにすると、X-QMAIL-Macroが付いた状態でメッセージボックスに保持して、次回編集時にそれを引き継ぐ必要があります。そのようにすると悪意のある人からX-QMAIL-Macroが付いたメッセージが送られてきたときに、誤ってそれを再編集しようとしてしまうと悪意のあるX-QMAIL-Macroを実行してしまう可能性があるという問題があります(現在はedit.templateでオリジナルのX-QMAIL-Macroは消してしまうので問題ありません)。
と考えると、以下のようにするのが良いのでしょうか?
なんだか微妙ですね。
*1 ちなみにOEでも同じような状態になります
リリースされていました。セキュリティFixだそうです。svnserveを使っていなければ関係ないということですが、一応アップデートしてみました。