電信八号初心者講座・テンプレート

電信八号初心者講座の目次へ

←電信八号初心者講座・住所録へ

 電信八号初心者講座・使い方・その1でメールを書くためにエディタを起動した時、

メモ帳

 こういう文章が既に書かれた状態で起動したと思います。これは、毎回同じことを書かなくてもすむように、メールの雛型として電信八号が用意してくれるものです。もちろん、これはテンプレートファイルというものをエディタで編集することで、自由に変更ができます。また電信八号では、メールの送り先によって使う雛型を自動的に変えることもできるのです。ここでは、その設定の仕方を説明しようと思います。

テンプレート定義ファイルの設定

 …テンプレートファイルの書き方を説明する前に、テンプレート定義ファイルの説明をしましょう。テンプレート定義ファイルは、メールを新しく書いたり返信したり転送したりする時に、どのテンプレートファイルを雛型にしてエディタを起動するのかを指定するファイルのことです。これにより、送る宛先等によってテンプレートファイルを自動的に切りかえることが可能になります。

設定ボタンを押して「設定」ウィンドウを出し、左のリストから「フォルダ」を選択してください。

設定・フォルダ

 そして変更したいテンプレート定義ファイルの欄の右にある「編集」ボタンを押してください。「送信テンプレート定義ファイル」はメールを新規作成する際に、「返信テンプレート定義ファイル」は返信の際に、「転送テンプレート定義ファイル」は転送の際に使われるテンプレート定義ファイルです。

テンプレート定義ファイルの編集

 するとこのようなウインドウが出てテンプレート定義ファイルが編集できるようになります(違うプログラムが起動してしまう時等は、電信八号を終了させてからエディタで直接目的のファイルを編集して下さい)。

 そうしたら、次に、どんなメールにどのテンプレートを使うかを書いていきます。書式は、電信八号初心者講座・メールの振り分けで説明されたフォルダ定義ファイルと同じで、

/(正規表現)/(半角スペースまたはタブ)(使用するテンプレートファイル名)(改行)

 です。作成される(または返信や転送される元の)メールのヘッダがテンプレート定義ファイルに書かれた条件に合致した時に、その右に書かれたテンプレートファイルが雛型として使われる、という仕組みです(なお、「編集」ボタンを押して編集を行っている場合は、TabキーはTabを入れる役割をしてくれません。半角スペースを使うようにして下さい)。複数条件がある場合は上から調べられていきますから書く順序にも注意が必要です。

 例えば、送信テンプレート定義ファイル(メールの新規作成の時に使われるテンプレートを指定するファイル)に

/TO:.*hoge@boo.hoo.woo/             send.cmp

 と書かれていた場合、住所録で宛先にhoge@boo.hoo.wooを指定してメールを作成した場合にsend.cmpのファイルがテンプレートファイルとして使用されるようになります。

 (使用するテンプレートファイル名)には、c:\den8\send.cmpのような絶対パスが使えます。相対パスも使えますが、その場合の基本となるフォルダはDenshin8.exeがあるフォルダになります。よって、上の例のように名前だけの場合は、Denshin8.exeがあるフォルダと同じフォルダに存在しているファイルだとみなされます。

 ここで注意して欲しいのは返信と転送のテンプレート定義ファイルです。ここに書く正規表現は、返信元、転送元のフィールドがどうなっているかというものです。From: hoge <hoge@boo.hoo.woo>のフィールドを持つメールを返信する際に使うテンプレートを指定する時には、/FROM:.*hoge@boo.hoo.woo/等とします。返信の時にはFromフィールドに書かれていたアドレスがToフィールドになるからといって、/TO:.*hoge@boo.hoo.woo/等としてはいけません。

 色々定義を書いたら、最後の行に、

/.*/                                 send.cmp
のように記述して、かならずどれかのテンプレートが選択されるようにしましょう。そうしないとテンプレート定義ファイルに書かれた条件全てに合致しないものがきた時に、電信八号が困ってしまいます。

 新しいファイルを作ってそれをテンプレート定義ファイルとして指定することもできます。その場合、ファイルの拡張子は.defとしてください。ファイルができあがったら指定する定義ファイルの欄にそのファイル名を書きこめばOKです。ここも絶対パスを使った方が無難です。ファイル名のみが使われた場合はDenshin8.exeがあるフォルダと同じフォルダにあるとみなされます。

テンプレートファイルの書き方

 テンプレート定義ファイルが書かれても、テンプレートファイルがなければなにもなりません。ではテンプレートファイルの書き方を説明していきましょう。

 テンプレートファイルは、拡張子が.cmpとなっています(違う拡張子であってもテンプレート定義ファイルできちんと指定してあれば動きますが、テンプレートファイルの拡張子は.cmpにすることをお勧めします)。まずテンプレート定義ファイルで指定されたファイルを作成しましょう。すでにあるファイルをテンプレート定義ファイルで指定していた場合はそのままでもちろん構いません。

 そうしたらエディタでそのファイルを開いて編集します。テンプレートは電信八号が扱うメールの形式に則らなければならない(インターネットメールの形式+ヘッダと本文を--------で区切る)ので、初めは最初からある、send.cmp(送信テンプレート定義ファイルから呼び出される)やreply.cmp(返信テンプレート定義ファイルから呼び出される)、forward.cmp(転送テンプレート定義ファイルから呼び出される)を下敷きとして使うことをお勧めします。とりあえず、send.cmpとreply.cmpを例に挙げて説明しましょう。

 まずはsend.cmpから。

送信テンプレート

 $で始まる単語は、変数を意味します。新しくメールが作られるたびに、電信八号がその変数が表す文字列に置き換えてくれるものです。$FROMは「サーバー別の設定」で設定した実名とメールアドレスによって作られる文字列に、$TO、$CC、$BCCは住所録で指定されたアドレスに(それがなければ空欄に)、$SUBJECTは住所録で指定された文字に置き換えられます(これについてもなければ空欄です)。なお、$の後は大文字です。小文字は許されないので注意して下さい。

 変数には、後ろに[]をつけることができます。その場合、[]の中に書かれた整数個目の単語に置き換えられます。例えば、$FROMがhoge <hoge@boo.hoo.woo> (ほげほげ)だった場合、$FROM[1]はhogeに、$FROM[2]は<hoge@boo.hoo.woo>に、$FROM[3]は(ほげほげ)になります。また、[1-10]等と書くことにより、1個目〜10個目の単語、というように指定することもできます。電信八号は半角スペースで区切られたものを単語とみなしますので、ho ge ho geは4つの単語であると解釈されます。ただし、""で囲まれたものはひとつの単語とみなされます。すなわち、$FROMが"ho ge ho ge" <hoge@boo.hoo.woo>だった場合、$FROM[1]はho ge ho geとなります(""は取り去られます)。

 送信テンプレートファイルで使われる$BODYについては電信八号のヘルプを参照してください。HTMLとの連携で必要になるというものですので、気にしなくても構いません。

 $INCLUDE<>($INCLUDEと<>の間にはスペースを入れないようにしてください)は、<>で囲まれたファイルに置きかえられます。ファイルには絶対パスも使うことができます。ちなみにPRIVATE.SIGをメモ帳で開いてみると…。

private.sigの内容

 …となっています。だから最初にメールを作成した時にああいう文字が書かれたものになったわけです。下に住所録では何も入力しないときのメールを置いておきますので、参考にしてください。仕組みがわかったでしょうか。

メモ帳

 送信テンプレートファイルでは、変数は$TO、$CC、$BCC、$FROM、$SUBJECT、$BODY、$INCLUDE<>が使えます。

 では次に、reply.cmpです。

返信テンプレート

 $RECOMMENDED-で始まる変数は、電信八号が推奨する文字列に置き換えてくれるものです。例えば$RECOMMENDED-TOは、返信元のメールにReply-Toフィールドがあればそのアドレスに、それがなければ返信元のメールのFromフィールドに書いてあるアドレスが使われます。

 $BODYは元のメール本文を(送信テンプレートファイルにおける$BODYとは意味が変わっているので注意してください)、$QUOTED-BODYは元のメール本文各行の先頭に、「設定」ウィンドウで設定された引用文字列が付加されたものを指します。この2つの変数についた[]は例外で、[]の中に書かれた整数行を表します。$BODY[1-1000]ならば本文の1行目から1000行目になるわけです。

 返信テンプレートファイルでは、送信テンプレートで使えた変数($TO、$CC、$BCC、$FROM、$SUBJECT、$INCLUDE<>)に加え、$RECOMMENDED-FROM、$RECOMMENDED-TO、$RECOMMENDED-CC、$RECOMMENDED-IN-REPLY-TO、$REFERENCES、$MESSAGE-ID、$RECOMMENDED-SUBJECT、$ORIGINAL-SUBJECT、$BODY、$QUOTED-BODY、さらに元のメールの全てのヘッダが使えます。以下、少し解説します。

 どうでしょうか。転送テンプレートファイルは返信テンプレートファイルと同じ書き方でいいと思います。これを参考に、テンプレートファイルを作ってみてください。

←電信八号初心者講座・住所録へ

電信八号初心者講座の目次へ