2008年3月 5日 (水)

通知メールのカスタマイズ (3.Format 要素)

前回に引き続きタスクリストに使用される通知テンプレートの詳細を確認します。

Format 要素

通知メールのカスタマイズをする上で重要なのがFormat 要素です。このタグの中にメールの定型文書が書かれています(ちなみに、リストから取得するフィールド(列) 情報は "<Properties>~</Properties>"で定義されています)。

Format 要素は Digest 要素と Immediate 要素で構成されています。

Alertimmediateformat

Digest 要素は、"日に一度通知する" もしくは "週に一度通知する" ように設定した際に使われます。一方、Immediate 要素は "すぐに通知する" ように設定した際に使われます。では、この Immediate 要素の詳細を見てみたいと思います。

Immediate 要素は Subject , Header, HTML, Fields, Footer で構成されています。

Alertimmediateformatdetail1

それぞれは、実際に送信される HTML メールのどこに該当するのでしょうか。実際に照らし合わせてみましょう。

以下が、タスクリストに設定した通知メールのサンプルです。Outlook 2007 を使用し、タスクアイテムのタイトルは aaa としています。

Alertmailall

[Subject 要素]

最初のSubject 要素はメールの「件名」です。

Alertimmediateformatdetailsubject

つまり 「件名 : {AlertTitle} - {ItemName} 」 となっており、実際のメールでは GetVar で指定した部分に値が代入され、「タスク - aaa」 となっています。

[Header 要素]

続く Header 要素を見てみましょう。ここから複雑になってきますので、まずは実際のメールのどの部分に当たるかを確認しておきます。Header 要素の内容と生成される HTMLコードと照らし合わせると、次の図の部分が生成されることになります。

(図.HTML メールの抜粋)
Alertimmediateformatdetailheadermai

***生成されるHTMLソースコード****

      <html  dir = ltr>
<head>
<base href="http://moss2007/sites/top/SiteDirectory/soumu">
<style>
<!--
.headertop1 {
  width: 100%;
}
(中略)
-->
</style>
</head>
<body>
  <table class="headertop1" cellspacing="0" cellpadding="0">
   <tr><td class="headercontent">
    <table class="breadcrumb" cellspacing="0" cellpadding="0" width="100%"><tr><td><a href="http://moss2007/sites/top/SiteDirectory/soumu">総務部</a></td></tr></table> 次のアイテムが変更されました: <em>aaa</em>
   </td>
  </tr></table> 
  <table class="content" cellspacing="0" cellpadding="0">
   <tr>
    <td colspan="3">
     <table class="toolbar" cellspacing="0" cellpadding="0" width="100%"><tr><td>
      <table cellspacing="0" cellpadding="0" border="0">
       <tr>
        <td class="toolbarbutton"><a href="http://moss2007/sites/top/SiteDirectory/soumu/_layouts/MySubs.aspx">通知の設定の変更</a></td>
        <td class="toolbarsep">|</td>
        <td class="toolbarbutton"><a href="http://moss2007/sites/top/SiteDirectory/soumu//Lists/Tasks/DispForm.aspx?ID=5">表示 aaa</a></td>
        <td class="toolbarsep">|</td>
        <td class="toolbarbutton"><a href="http://moss2007/sites/top/SiteDirectory/soumu/Lists/Tasks">表示 タスク</a></td>
        <td class="toolbarsep">|</td>
        <td class="toolbarbutton"><a href="http://moss2007/sites/top/SiteDirectory/soumu/_layouts/mobile/dispform.aspx?List=A5540ED9-AC8D-4C1F-9772-421B2CBD2BBA&ID=5">モバイル ビュー</a></td>
       </tr>
      </table>
     </td></tr></table>
    </td>
   </tr>
   <tr><td colspan="3"class="spacer"> &nbsp;</td></tr>

*******************

Header 要素ではHTML文書が生成されるようになっおり、大まかにいうと Table タグとスタイルシートで構成されいます。XML に慣れていない方は "<![CDATA[ " から "]]>" までを中心に確認してください。ここに生成されるHTMLの構造が書かれています。なお、スタイルシートが複数定義されていることから、もしスタイルを変更したいのであればHeader 要素を修正すればよいのだということがわかります。

(図.Header要素の抜粋)
Alertimmediateformatdetailheader

[HTML 要素]

ここは生成されるHTMLメールを見ると使用されていないようですので割愛します。

[Fields 要素]

ここで本文を生成してます。

(図.HTMLメールの抜粋)
Alertmailfield

***生成されるHTMLソースコード****

<tr>
    <td class="formlabel">タイトル:</td><td class="formbody"> aaa</td><td class="altvb">&nbsp;</td>
   <tr>
    <td class="formlabel">優先度:</td><td class="formbody"> (2) 標準</td><td class="altvb">&nbsp;</td>
   <tr>
    <td class="formlabel">状態:</td><td class="formbody"><span class="edited">進行中</span> 完了</td><td class="altvb"><span class="editedicon">編集済み</span></td>
   <tr>
    <td class="formlabel">担当者:</td><td class="formbody"> 山崎 愛</td><td class="altvb">&nbsp;</td>
   <tr>
    <td class="formlabel">説明:</td><td class="formbody"> <div></div></td><td class="altvb">&nbsp;</td>
   <tr>
    <td class="formlabel">開始日:</td><td class="formbody"> 2008/02/09</td><td class="altvb">&nbsp;</td>

****************************************

(図.Fields 要素の抜粋)

Alertimmediateformatdetailfields

面白いのは、フィールドの古い値を新しい値を取得しているところです。HTMLメールを見るとわかりますが、状態フィールドの値を"進行中"から"完了" に変更しています。メールではどの部分が変更されたか確認できるように、GerVar 要素を使って値を参照しています。古い値は"OldValue#{field}"として新しい値は"OldValue#{field}"となっています。

[Footer 要素]

ここでメールの締めくくりの部分を生成しています。

(図.HTMLメールの抜粋)

Alertmailfooter

***生成されるHTMLソースコード****

<tr>
    <td colspan=3 class="descriptiontext">最終更新日時 2008/02/09 15:21 更新者 山崎 愛</td>
   </tr>
  </table>
</body>
</html>

****************************************

(図.Footer 要素)
Alertimmediateformatdetailfooter

以上、Format 要素の詳細を見てきましたが、これでなんとなくどのあたりを変更したらカスタマイズできそうかの見当がついたことと思います。

次回は、具体的なカスタマイズ方法をご紹介します。

トラックバック

このページのトラックバックURL: http://bb.lekumo.jp/t/trackback/718613/34255757

通知メールのカスタマイズ (3.Format 要素)を参照しているブログ:

コメント