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)
脚注を使っている月がだめっぽいですね。大家さんに報告しておきました。
ありがとうございます。読めるようになりました。