SetHeader/SetHeader2/AddHeader/DeleteHeader/DeleteHeader2/SetOrDeleteHeader/AddHeaderIf/DeleteHeaderUnited関数(TKInfo.dll)(Ver7.33対応版)
SetHeader関数は、現在編集中のメールのヘッダ部分から指定されたヘッダを検索し、その内容を書き換えます。指定されたヘッダが見つからない場合は新たに追加します。
SetHeader2関数は、書き換えたいヘッダが複数存在していた場合のための関数で、書き換えたいヘッダの番号を指定して、そのヘッダの内容を書き換える処理のみを行います。
AddHeader関数は、現在編集中のメールにパラメータで指定されたヘッダおよび内容を追加します。
DeleteHeader関数は、パラメータで指定されたヘッダを1つ削除します。DeleteHeader2関数は、削除したいヘッダが複数存在していた場合に、そのヘッダの番号を指定できる物です。
SetOrDeleteHeader関数は、パラメータで指示したヘッダ内容文字列がもしも空("")ならDeleteHeaderし、空でなければSetHeaderします。また、対象のヘッダが元々複数存在してた場合は、それらを1つにまとめます。例えば
To: aaa
To: bbb
のようになってる所にdllfunc("SetOrDeleteHeader", "To", "ccc")とすると、「To: bbb」のヘッダが削除されて、最終結果は、
To: ccc
のようになります。(V6.16からの仕様変更)
AddHeaderIf関数は、もしもパラメータで指示したヘッダ内容が空なら何もせず、空で無ければAddHeaderします。
これらの関数は、エディタ・ウィンドウ上で、編集が許可された状態になっている時か、または秀丸メール本体上で
BeginEditMailした状態でないと使えません。
これらの関数は、テンプレートからヘッダ部分を書き換えるために用意した物ですが、普通のマクロからも使えます。ただし、これを実行するとメールの「更新されている」のフラグおよびアンドゥ用のバッファがクリアされ、
カーソルはヘッダ部分の先頭に移動してしまいます。
SetHeaderUnited関数は、基本はSetHeader関数と同じですが、もしも元々のヘッダが複数あった場合に2番目以降はすべて削除して1つのみに統合します。パラメータ2が空の場合でも削除しないことを除いてはSetOrDeleteHeaderと同じ動きとなります。
DeleteHeaderUnited関数は、パラメータで指示したヘッダをすべて削除します。
- パラメータ1(文字列型)
-
ヘッダ名です。"From"のように指定しても、"From:"のようにコロン付きで指定してもかまいません。
- パラメータ2(SetHeader, SetHeader2, AddHeader, SetOrDeleteHeader, AddHeaderIf, SetHeaderUnited関数、文字列型)
-
ヘッダの内容部分です。ここの値の最後に改行文字が付いている場合には、その改行文字は取り除かれます。
- パラメータ2(DeleteHeader2関数、数値型)
-
削除したいヘッダの番号です。先頭が0です。
- パラメータ3 (SetHeader2関数のみ)
-
書き換えたいヘッダの番号です。先頭が0です。
- 返り値
-
SetHeader関数およびAddHeader関数の返す値は文字列型であり、常に""を返します。
SetHeader2関数の返す値は数値型であり、成功した場合は1、失敗した場合は0を返します。例えばパラメータ3に1を指定したけれども、ヘッダが1つしか無かった場合は書き換えに失敗し、0を返します(ヘッダの追加はしません)。
DeleteHeader, DeleteHeader2関数の返す値は数値型であり、実際にヘッダを削除した場合は1、削除しなかった場合(指定されたヘッダが無かった場合)は0を返します。DeleteHeader関数は同じヘッダを複数見つけても最初の1つしか削除しないので、すべて削除したい場合は返り値が0になるまで繰り返し呼び出す必要があります。
SetOrDeleteHeader関数、AddHeaderIf関数の返り値は常に""となります。
例 |
$s = dllfuncstr( "SetHeader", "Reply-To", "abc@xyz" );
#n = dllfunc( "SetHeader2", "Received", "abc@xyz", 1 );
$s = dllfuncstr( "AddHeader", "Bcc", "abc@xyz" );
#n = dllfunc( "DeleteHeader", "X-TuruKame-PartialSend" );
#n = dllfunc( "DeleteHeader2", "X-Attach", 1 );
#n = dllfunc( "SetOrDeleteHeader", "Cc", dllfuncstr("RootHeader", "Cc") );
#n = dllfunc( "AddHeaderIf", "Cc", dllfuncstr("RootHeader", "Cc") );
#n = dllfunc( "SetHeaderUnited", "To", dllfuncstr("RootHeaderUnited", "To") );
|