2. 関数リファレンス

関数の返す型は以下の通りです。

関数の引数の型は以下の通りです。

引数の後ろに付く記号が+の場合は1つ以上の引数をカンマ区切りで指定することを、?の場合は省略可能で指定する場合は1つであることを示します。また、*の場合は省略可能でかつ+同様に複数指定もできることを示します。

説明文中「そのメール」というのはマクロが参照したメールを差します。
つまり、テンプレートの場合返信や転送、表示の元になるメールを、振り分けルールの場合は振り分け条件のチェックを行っているメールです。

目次へ


2.1 ブール型関数

戻り値として真、または偽を返します。

2.1.1 @True()

・真を返します。

目次へ] [この章の先頭へ


2.1.2 @False()

・偽を返します。

目次へ] [この章の先頭へ


2.1.3 @Seen(@Boolean?)

・そのメールが既読だと真、未読だと偽を返します。
・第一引数が指定されているとそのフラグを変更します。真だと既読にし、偽だと未読にします。

目次へ] [この章の先頭へ


2.1.4 @Marked(@Boolean?)

・そのメールがマークされていると真、マークされていないと偽を返します。
・第一引数が指定されているとそのフラグを変更します。真だとマークし、偽だとマークを外します。

目次へ] [この章の先頭へ


2.1.5 @Replied(@Boolean?)

・そのメールが返信されていると真、返信されていないと偽を返します。
・第一引数が指定されているとそのフラグを変更します。真だと返信済みにし、偽だと未返信にします。

目次へ] [この章の先頭へ


2.1.6 @Forwarded(@Boolean?)

・そのメールが転送されていると真、転送されていないと偽を返します。
・第一引数が指定されているとそのフラグを変更します。真だと転送済みにし、偽だと未転送にします。

目次へ] [この章の先頭へ


2.1.7 @Sent(@Boolean?)

・そのメールが送信済みだと真、送信済みでないと偽を返します
・第一引数が指定されているとそのフラグを変更します。真だと送信済みにし、偽だと未送信にします。

目次へ] [この章の先頭へ


2.1.8 @Draft(@Boolean?)

・そのメールがドラフトだと真、ドラフトでないと偽を返します。
・第一引数が指定されているとそのフラグを変更します。真だとドラフトにし、偽だとドラフトでなくします。

目次へ] [この章の先頭へ


2.1.9 @Multipart()

・そのメールがマルチパートだと真、マルチパートでないと偽を返します。

目次へ] [この章の先頭へ


2.1.10 @Partial()

・そのメールが部分的にダウンロードされていると真、すべてダウンロードされていると偽を返します。

目次へ] [この章の先頭へ


2.1.11 @Deleted(@Boolean?)

・そのメールに削除マークが付いていると真、そうでないと偽を返します。
・第一引数が指定されているとそのフラグを変更します。真だと削除マークを付け、偽だと削除マークを取ります。

目次へ] [この章の先頭へ


2.1.12 @Not(Boolean)

・第一引数が真だと偽、偽だと真を返します。

例:

目次へ] [この章の先頭へ


2.1.13 @And(Boolean, Boolean+)

・すべての引数が真だと真、そうでなければ偽を返します。
・ある引数が偽なら、それ以降の引数は評価されません。

例:

目次へ] [この章の先頭へ


2.1.14 @Or(Boolean, Boolean+)

・すべての引数が偽なら偽、そうでなければ真を返します。
・ある引数が真なら、それ以降の引数は評価されません。

例:

目次へ] [この章の先頭へ


2.1.15 @Equal(Value, Value, Boolean?)

・第一引数と第二引数を比較して同じならば真、そうでなければ偽を返します。
・第一引数と第二引数の両方がブール型ならば、ブール型として比較。それ以外は、文字列型に変換して比較します。
・第三引数が真の場合、大文字小文字を区別します。省略時は偽が指定されたものとします。

例:

目次へ] [この章の先頭へ


2.1.16 @Greater(Value, Value, Boolean?)

・第一引数と第二引数を比較して第一引数が大きいならば真、そうでなければ偽を返します。
・第一引数と第二引数の両方がブール型ならば、ブール型として比較。それ以外は、文字列型に変換して比較します。
・第三引数が真の場合、大文字小文字を区別します。省略時は偽が指定されたものとします。

例:

目次へ] [この章の先頭へ


2.1.17 @Less(Value, Value, Boolean?)

・第一引数と第二引数を比較して第一引数が小さいならば真、そうでなければ偽を返します。
・第一引数と第二引数の両方がブール型ならば、ブール型として比較。それ以外は、文字列型に変換して比較します。
・第三引数が真の場合、大文字小文字を区別します。省略時は偽が指定されたものとします。

例:

目次へ] [この章の先頭へ


2.1.18 @Contain(String, String, Boolean?)

・第一引数に、第二引数が含まれていたら真、そうでなければ偽を返します。
・第三引数が真の場合、大文字小文字を区別します。省略時は偽が指定されたものとします。

例:

目次へ] [この章の先頭へ


2.1.19 @BeginWith(String, String, Boolean?)

・第一引数が、第二引数から始まっていたら真、そうでなければ偽を返します。
・第三引数が真の場合、大文字小文字を区別します。省略時は偽が指定されたものとします。

例:

目次へ] [この章の先頭へ


2.1.20 @Exist(String)

・第一引数で指定されたフィールドが存在すれば真、そうでなければ偽を返します。

例:

目次へ] [この章の先頭へ


2.1.21 @Passed(Number)

・第一引数で指定された日数経っていたら真を返します。そうでなければ偽を返します。

例:

目次へ] [この章の先頭へ


2.1.22 @Defun(String, Expr)

・第一引数で指定した名前で関数を定義します。
・関数の本体は第二引数の中身になります。
・関数の引数は、$0から順に取得することができます。ただし、$0は関数本体の 名前になり、$1からが関数に渡された引数になります。
・関数の登録が成功した場合には真を、それ以外の場合には偽を返します。

例:

目次へ] [この章の先頭へ


2.2 文字列型関数

戻り値として文字列を返します。

2.2.1 @Header(String?, Part?)

・ヘッダの文字列を返します。
 ・第一引数を指定すると、そのフィールドを取り去ります。複数のフィールドを取り去りたい場合、フィールド名を','で区切ります。
 ・第二引数を指定すると、そのパートのヘッダを取得します。

例:

目次へ] [この章の先頭へ


2.2.2 @Body(String?, Boolean?, Boolean?, Part?)

・本文の文字列を返します。
・第一引数は、引用文字列です。指定されていると各行頭に挿入されます。
・第二引数が真ならばテキストのみ、そうでなければすべての本文を返します。
・第三引数が真ならば添付ファイルが付いている場合に、その旨を示す文字列を付加します。
・第二・第三引数は省略時、偽が指定されたものとします。
 ・第四引数を指定すると、そのパートの本文を取得します。

例:

目次へ] [この章の先頭へ


2.2.3 @AddressBook(String?)

・アドレス帳を開いて、選択されたアドレスを連結した文字列を返します。
・第一引数は、アドレス帳に表示するタイトル。省略時は何も表示しません。

例:

目次へ] [この章の先頭へ


2.2.4 @AddressBook2(String?, String?, String?)

・選択されたアドレスをヘッダに挿入できる形で返します。
・第一引数はToのデフォルト値です。
・第ニ引数はCcのデフォルト値です。
・第三引数はBccのデフォルト値です。
・第一引数から第三引数まで省略可能です。

例:

目次へ] [この章の先頭へ


2.2.5 @Subject(Boolean?, Boolean?)

・サブジェクトを返します。
・第一引数が真ならば、先頭の'Re: 'を取ります。
・第二引数が真ならば、先頭のメーリングリスト名を取ります。
・各引数の省略時は偽が指定されたものとします。

例:

目次へ] [この章の先頭へ


2.2.6 @FormatDate(Date, String, Number?)

・第一引数はフォーマットする日付です。
・第二引数はフォーマットを指定する文字列です。

%Y{4|2}:年 (%Y4は4桁に、%Y2は2桁になります)
%M{0|1}:月 (%M0は数字で表示。%M1は英語の省略形(Jan, Feb, ...)になります)
%D:
%h:時間
%m:
%s:
%z:タイムゾーン ({+|-}xxxxの形式)
・第三引数はタイムゾーンについての指定を行います。省略時はローカルタイムとなります。
0:GMT
1:ローカルタイム
2:オリジナルのタイムゾーン

例:

目次へ] [この章の先頭へ


2.2.7 @Column(String)

・リストビューに表示されている値を取得します。
・第一引数は以下の値のいずれかです。
'date'
'from'
'subject'
これ以外の値はエラーとなります。

例:

目次へ] [この章の先頭へ


2.2.8 @Concat(String+)

・引数の文字列を連結した文字列を返します。

例:

目次へ] [この章の先頭へ


2.2.9 @SubstringAfter(String, String, Boolean?)

・第一引数に第二引数が含まれる場合、それより後ろの文字列を返します。含まれない場合には、空文字列を返します。
・第三引数が真の場合、大文字小文字を区別します。省略時は偽が指定されたものとします。

例:

目次へ] [この章の先頭へ


2.2.10 @SubstringBefore(String, String, Boolean?)

・第一引数に第二引数が含まれる場合、それ以前の文字列を返す。含まれない場合には、空文字列を返します。
・第三引数が真の場合、大文字小文字を区別します。省略時は偽が指定されたものとします。

例:

目次へ] [この章の先頭へ


2.2.11 @Substring(String, Number, Number?)

・第一引数から文字を切り出します。
・第二引数は切り出し開始位置のインデックス。先頭は0です。
・第三引数は切り出す長さを指定します。
・第三引数が省略されると、最後まで切り出します。
・第二引数が第一引数の長さより大きい場合には、空文字列を返します。

例:

目次へ] [この章の先頭へ


2.2.12 @Decode(String)

・第一引数をデコードして返します。

例:

目次へ] [この章の先頭へ


2.2.13 @Account(Boolean?)

・第一引数が偽の場合、現在のアカウント名を返します。
・第一引数が真の場合、現在のサブアカウント名を返します。
・第一引数のデフォルトは偽です。

例:

目次へ] [この章の先頭へ


2.2.14 @Identity()

・現在のIdentity名を返します。

目次へ] [この章の先頭へ


2.2.15 @Folder(Boolean?)

・そのメールのフォルダ名を返します。
・引数が真の時にはフルネームを、偽の時には名前を返します。省略時は真が指定されたものとします。

例:

目次へ] [この章の先頭へ


2.2.16 @Load(String, Boolean?)

・第一引数で指定されたパスのファイルを読み込んで内容を返します。
・第一引数で相対パスを指定した場合、現在開いているテンプレートが基準に、振り分けルールや検索時に指定した場合はメールボックスディレクトリが基準になります。
・第二引数が真だと、指定されたパスのファイルをテンプレートとして解釈します。省略時には、偽が指定されたものとします。

例:

目次へ] [この章の先頭へ


2.2.17 @References(Number?)

・メールのReferencesヘッダを返します。
・第一引数が指定された場合、最大その個数まで返します。
・第一引数が省略された場合、すべて返します。(@Field('References')と同義)

例:

目次へ] [この章の先頭へ


2.2.18 @Clipboard()

・現在のクリップボードの内容を返します。
・テキスト以外が入っているときや、クリップボードの中が空の時には空文字列を返します。
・テンプレートでのみ使用できます

目次へ] [この章の先頭へ


2.2.19 @ParseUrl(String?)

・第一引数が指定された場合、そのURLをパースしてできたメッセージを返します。
・第一引数が指定されない場合、内部のURLバッファをパースしてできたメッセージを返します。内部のURLバッファには、起動時に-sで渡した結果の文字列が格納されています。
・mailto URL以外の文字列を渡したときの結果は不定です。
・第一引数を指定しない場合、テンプレートでのみ使用できます。

例:

目次へ] [この章の先頭へ


2.2.20 @FieldParameter(String, String?, Part?)

・第一引数で指定されたフィールドの、第二引数で指定されたパラメータの値を返します。
・第二引数を省略するとパラメータ以外のフィールドの値を返します。
・第三引数を指定すると、そのパートのフィールドを取得します。

例:

目次へ] [この章の先頭へ


2.2.21 @OSVersion()

・OSの名前とバージョンを返します。返される形式は、X-Mailerに付加される形式と同一です。

例:

目次へ] [この章の先頭へ


2.2.22 @ComputerName()

コンピュータの名前を返します。

目次へ] [この章の先頭へ


2.2.23 @Attachment(String?)

・添付ファイル名のリストを返します。
・それぞれのファイル名は第一引数で指定した文字列で区切られます。
・第一引数が省略された場合、', 'で区切られます。

例:

目次へ] [この章の先頭へ


2.2.24 @InputBox(String, Boolean?, String?)

・ダイアログを出してユーザに入力を要求し、入力された文字列を返します。
・一番目の引数に表示するメッセージを指定します。
・二番目の引数が真だと複数行のダイアログを出します。それ以外の場合、単数行のダイアログを出します。デフォルトは偽です。
・三番目の引数に値のデフォルト値を指定します。

例:

目次へ] [この章の先頭へ


2.3 アドレス型関数

戻り値としてアドレスまたは名前のリストを返します。

2.3.1 @Address(String)

・第一引数として使えるのは以下のとおりです。
'i'
'to'
'cc'
'bcc'
'from'
'reply-to'
'sender'
'errors-to'
'resent-to'
'resent-cc'
'resent-bcc'
'resent-from'
'resent-sender'
これ以外の場合にはエラーとなります。
・指定されたヘッダの値からアドレスのリストを作ります。
・第一引数として'i'が指定された場合には、自分自身のアドレスになります。
'i'の変わりに関数@I()を使用しても同じです。

例:

目次へ] [この章の先頭へ


2.3.2 @Name(String)

・第一引数として使用できるのは@Addressと同じです。
・指定されたヘッダの値から名前のリストを作ります。
・第一引数として'i'が指定された場合には、自分自身の名前になります。
'i'の変わりに関数@I()を使用しても同じです。

例:

目次へ] [この章の先頭へ


2.3.3 @Remove(Address, Address+)

・第一引数のアドレスリストから、第二引数以降のアドレスリストに含まれるアドレスを削除します。

例:

目次へ] [この章の先頭へ


2.4 評価型関数

戻り値としては評価された結果が任意の型で返ります。

2.4.1 @If(Boolean, [Value, Value]+)

・第一引数が真ならば、関数の値は第二引数を評価した値です。
・第一引数が偽ならば、関数の値は第三引数を評価した値です。
・ただし、引数がそれ以上ある場合には、それを評価します。つまり、第一引数が偽ならば、第三引数を評価し、真ならば第四引数の値、偽ならば第五引数の値となり、以下同様です。

例:

目次へ] [この章の先頭へ


2.4.2 @Progn(Value+)

・第一引数から順番に処理し、最後の引数の値を式の値として返します。

例:

目次へ] [この章の先頭へ


2.4.3 @While(Boolean, Value)

・第一引数の条件が偽を返すまで、第二引数を繰り返し評価します。
 ・式の値は、最後に評価した第一引数の結果を返します。

例:

目次へ] [この章の先頭へ


2.4.4 @Set(String, Value, Boolean?)

・第一引数で指定された名前の変数に、第二引数の値を代入します。
・第二引数の値を返します。
・第三引数が真の場合、グローバル変数を設定します。デフォルトは偽です。

例:

目次へ] [この章の先頭へ


2.4.5 @Variable(String, Value?, Boolean?)

・第一引数で指定された名前の変数が定義されている場合、その値を返します。この場合、第二引数、第三引数は評価されません。
・定義されていない場合、第二引数を評価し、その値を変数として設定します。そしてその値を返します。
・第三引数が真の場合、グローバル変数を設定します。デフォルトは偽です。

例:

目次へ] [この章の先頭へ


2.4.6 @Exit()

・マクロを終了します。
・@Exitで終了すると、戻り値は不定になります。

目次へ] [この章の先頭へ


2.4.7 @Include(String)

・第一引数で指定されたパスのファイルを読み込みマクロとしてパースし、その結果を返します。
・第一引数で相対パスを指定した場合、現在開いているテンプレートが基準に、振り分けルールや検索時に指定した場合はメールボックスディレクトリが基準になります。

目次へ] [この章の先頭へ


2.4.8 @Eval(String)

・第一引数をマクロとしてパースし、結果を返します。
・@Include(String)は、@Eval(@Load(String))と同じです。

目次へ] [この章の先頭へ


2.5 フィールド型関数

戻り値としてフィールド値を返します。

2.5.1 @Field(String, Part?)

・第一引数はフィールド名です。
 ・第二引数を指定すると、そのパートのフィールドを取得します。
・指定されたフィールドのフィールド型を返します。

例:

目次へ] [この章の先頭へ


2.5.2 @I(String?, String?)

・自分自身のアドレスと名前を保持する疑似フィールド値を返します。
・第一引数はアカウント名で、省略するとカレントのアカウントとなります。
・第二引数はIdentity名で、省略するとカレントのIdentityとなります。

例:

目次へ] [この章の先頭へ


2.6 数値型関数

戻り値として数値を返します。

2.6.1 @ProcessId()

・プロセスIDを返します。

目次へ] [この章の先頭へ


2.6.2 @Find(String, String, Number?, Boolean?)

・第一引数の中で、第二引数の位置を返します。
・第三引数が指定されるとその位置以降をから探します。指定しない場合は最初から探します。
・第四引数が真だと、大文字小文字を区別します。省略時は偽が指定されたものとします。
・見つからなかった場合、4294967295を返します。

例:

目次へ] [この章の先頭へ


2.6.3 @Add(Number, Number)

・第一引数と第二引数を足した値を返します。

例:

目次へ] [この章の先頭へ


2.6.4 @Minus(Number, Number)

・第一引数から第二引数を引いた値を返します。
・数値型はマイナスの値を扱わないので、結果がマイナスになるような演算をするとアンダーフローを起こします。

例:

目次へ] [この章の先頭へ


2.6.5 @Size()

・対象のメッセージのサイズを返します。

目次へ] [この章の先頭へ


2.6.6 @Length(String, Boolean?)

・一番目の引数の文字列の長さを返します。
・二番目の引数が偽の時には、Unicode文字列としての長さを返します。
・二番目の引数が真のときには、プラットフォーム固有のMBCS(日本語ならSJIS)に変換した後の長さを返します。
・二番目の引数が省略されると偽になります。

例:

目次へ] [この章の先頭へ


2.6.7 @MessageBox(String, Number?)

・第一引数を文字列に変換してメッセージボックスを表示します。
・第二引数はメッセージボックスのタイプです。タイプは以下の組み合わせで実際には十進で指定します。

・返り値は以下の値のいずれかです。

例:

目次へ] [この章の先頭へ


2.7 日付型関数

2.7.1 @Date(String?)

・第一引数がない場合、現在の日付時間を返します。
・第一引数がある場合、その文字列をパースして得られる日付時間を返します。パースできるのは、Dateヘッダに書かれる形式です。

例:

目次へ] [この章の先頭へ


2.8 パート型関数

戻り値としてパートを返します。
パートとはメッセージ中の個々のパートコンテンツのことです。

2.8.1 @Part(Number, Part?)

・第二引数のパートの第一引数番目のパートを返します。
・第二引数が省略された時には、対象となるメッセージの第一引数番目のパートを返します。

例:

目次へ] [この章の先頭へ