|
僕が以前書いた
$(NoWarningHeaderUpdate)$-
$(SetHeader,To,$(CallByEmailList,SetEmailOnly,$(CurrentHeader,To)))$-
$(SetOrDeleteHeader,Cc,$(CallByEmailList,SetEmailOnly,$(CurrentHeader,Cc)))$-
のテンプレート命令ですが、テンプレートを実行する前のメールが、たとえば
To: aaaa
To: bbbb
みたいにTo:ヘッダが2つあったりすると、1つめのto:ヘッダを対象としてしか処
理されなくて、結果として期待した動作にならないかと思います。
そういう話だと思いますが、とりあえずそういう前提で、何かいい解決策は無いか
なぁということでお返事させいただきますと…
実は、最近のバージョンで、「CurrentHeaderUnited」って命令と、「SetHeaderUn
ited」って命令の2つを用意しました。これを使えば、上記のような「To:ヘッダが
複数ある」のケースでもうまく処理できると思います。
具体的には、
$(NoWarningHeaderUpdate)$-
$(SetHeaderUnited,To,$(CallByEmailList,SetEmailOnly,$(CurrentHeaderUnited,T
o)))$-
で、とりあえずTo:ヘッダについてはうまくいくと思います。
Cc:ヘッダの場合も含めると、たとえば
$(NoWarningHeaderUpdate)$-
$(SetHeaderUnited,To,$(CallByEmailList,SetEmailOnly,$(CurrentHeaderUnited,T
o)))$-
$(SetHeaderUnited,Cc,$(CallByEmailList,SetEmailOnly,$(CurrentHeaderUnited,C
c)))$-
とすればうまくいくのですが、この場合、Cc:ヘッダの宛先が無いメールで空のCc:
ヘッダが出来てしまいます。
SetOrDeleteHeaderUnitedって命令を用意しとけばそういうことにはならなかった
のですが、すみませんがそういう命令は作ってませんでした。で、なんとかするとし
たら、こういう作戦がありました。
$(NoWarningHeaderUpdate)$-
$(SetHeaderUnited,To,$(CallByEmailList,SetEmailOnly,$(CurrentHeaderUnited,T
o)))$-
$(SetHeaderUnited,Cc,$(CallByEmailList,SetEmailOnly,$(CurrentHeaderUnited,C
c)))$-
$(SetOrDeleteHeader,Cc,$(CurrentHeaderUnited,Cc))$-
のように、一度SetHeaderUnitedでCc:ヘッダをセットして、それからSetOrDeleteH
eaderでCc:ヘッダをセットしなおすと、それでうまくいくと思います。
どうでしょうか。
|
|