Disposition-Notification-Toが付いているメッセージに開封通知を送る例です。まず、開封通知を既に送ったかどうかはUser1フラグを使うことにしてみます。
@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())
上のようなマクロをどこかに埋め込みます。表示テンプレートに埋め込んでも良いですが、そうするとHTML表示が使えなくなってしまうので、header.xmlのどこか(たとえばSubjectの欄など)に埋め込むのが良いでしょう。こんな感じです。
<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>
そして、notification.templateというファイル名で開封通知用のテンプレートを作成します。
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アクションを起動しているのでエディットビューが表示される前にメッセージが送信されます。
Microsoft UpdateをかけたらVS2005SP1がリストアップされていたのでインストールしてみました。試しに、以前失敗したVista SDKと組み合わせてQMAIL3をビルドしてみたところ、以前と同じようにエラーも出さずにコンパイルに失敗してしまいました。
SP1があたると、リンクされるMSVCR80.DLLなども変わるようです。なので、SP1でビルドするとランタイムの新しいバージョンをインストールしないと動かなくなりそうな気がします。再配布用のパッケージはまだWebからダウンロードできないようですが、C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86\vcredist_x86.exeとしてインストールされるようなので、これをダウンロードできるようにすれば良さそうです。ちなみに、自分のところのWinSxSディレクトリを見てみたところMSVCR80.DLLは3種類入っていました。
2003年8月から2006年12月までの日記が読めなくなっています(T_T)
脚注を使っている月がだめっぽいですね。大家さんに報告しておきました。
ありがとうございます。読めるようになりました。