2007-02-13 [長年日記]

[Q3] @InvokeAction

マクロからアクションを起動するための@InvokeActionを追加しました。かなり凶悪なので使用には注意が必要です。たとえば処理中のメッセージを削除したりすると何が起きても不思議ではありません。あまりにもコントロール不能なのでずっと入れないでおいたのですが、注意して使えば色々できるのでついに入れてしまいました。

[Q3] MessageCreateアクション

MessageCreateActionに引数を追加しました。二番目の引数でテンプレートの引数を、三番目の引数で処理対象となるメッセージのURIを指定できるようにしました。たとえば、アクティブ振り分けを送信箱に設定してSubjectが空だったら再編集するならば、

<ruleSet account="..." folder="送信箱">
 <rule match="@Not(Subject)" use="active">
  <apply>
   @Progn(@Draft(@True()),
          @InvokeAction('MessageCreate', 'edit', '', @URI())
  </apply>
 </rule>
</ruleSet>

などとすれば良さそうです。

[Q3] X-QMAIL-EditMacro

さらにおまけでX-QMAIL-EditMacroというヘッダを追加しました。テンプレートで処理したメッセージをエディットウィンドウで開く直前に評価します。その中でエディットウィンドウを閉じた場合には、エディットウィンドウが表示されないまま終了します。これを使うと、

  1. 振り分けで@InvokeActionを使ってMessageCreateアクションを実行
  2. 使うテンプレートにX-QMAIL-EditMacroを仕込んで、そのマクロの中で@InvokeActionを使ってFileSendアクションを実行

のようにすると、エディットウィンドウを開かずに自動でメッセージを送ることができます。Disposition-Notification-Toを使った開封通知の処理などにも使えるのではないかと思います。

いずれも使い方を間違えると悲惨なことになるかも知れませんので、使うときには気をつけて使ってください。

本日のツッコミ(全3件) [ツッコミを入れる]
# Hogera (2007-02-13 22:54)

おお、すばらしい、、、 <br>これでほとんどなんでもできそうですね! <br>確かに気をつけないと危険な香りはしますが、、、

# Hogera (2007-02-14 00:24)

Subject空白のルールですが、このままだと編集中に自動巡回で送信されてしまわないでしょうか。編集前に@Draft(@True())しておいたほうがいいような、、、どうでしょ?

# snak (2007-02-14 07:18)

確かにそうですね。修正しておきました。

[]