以下のような方法で開封通知要求が付いているメールに開封通知を送ることができます。
開封通知要求が付いているメールにはDisposition-Notification-Toというヘッダが付いています。このヘッダが付いているメールを表示したときにマクロを実行することで開封通知を送ります。このとき、同じメールに対して何度も開封通知を送ってしまわないように、User1フラグを使います。つまり、開封通知を送ったらUser1フラグを立てるようにし、User1フラグが立っているメールに対しては開封通知を送らないようにします。
メールを表示したときにマクロを実行させるためには、表示用のテンプレートを使うのが一般的ですが、そうするとHTMLメールの表示ができなくなる等の制約があるため、ここではheader.xmlの中にマクロを埋め込むことにします。以下のような部分を見つけ、
<line class="mail|news"> <static width="auto" style="bold" showAlways="true">件名:</static> <edit number="6">{@Subject()}</edit> </line>
以下のように書き換えます。
<line class="mail|news"> <static width="auto" style="bold" showAlways="true">件名:</static> <edit number="6">{ @Progn(@If(@And(@Not(@User1()), Disposition-Notification-To), @Progn(@User1(@True()), @If(@Equal(@MessageBox(@Concat(Disposition-Notification-To, 'に開封通知を送りますか?'), 4), 6), @InvokeAction('MessageCreate', 'notification', '', @URI()), @True())), @True()), @Subject()) }</edit> </line>
マクロの中でDisposition-Notification-Toが付いているかどうか、User1フラグが立っているかどうかを調べ、開封通知を送る必要があればメッセージボックスを表示して確認してから@InvokeActionを使用してnotification.templateを使ってメッセージを作成しています。
notification.templateは以下のようなテンプレートを用意して、templates\mailの下に置きます。
To: {Disposition-Notification-To} Subject: 開封通知: {Subject} X-QMAIL-Account: {@Account()}{ @If(@Identity(), @Concat('\nX-QMAIL-SubAccount: ', @SubAccount()), '') } X-QMAIL-EditMacro: @InvokeAction('FileSendNow') 読みましたよ~。
メッセージの内容は適当に書き換えてください。これによって、開封通知として送るメッセージを作成します。ここで、X-QMAIL-EditMacroを使って、エディットウィンドウが開く直前にマクロを実行しています。その中でFileSendNowアクションを使って、作成したメッセージを実際に送信します。