2007-02-15 [長年日記]

[Q3] 開封通知

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アクションを起動しているのでエディットビューが表示される前にメッセージが送信されます。

Visual Studio 2005 SP1

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種類入っていました。

本日のツッコミ(全3件) [ツッコミを入れる]
# エピ (2007-02-15 11:26)

2003年8月から2006年12月までの日記が読めなくなっています(T_T)

# snak (2007-02-15 11:49)

脚注を使っている月がだめっぽいですね。大家さんに報告しておきました。

# エピ (2007-02-15 13:52)

ありがとうございます。読めるようになりました。

[]

トップ «前の日記(2007-02-14) 最新 次の日記(2007-02-16)»