Network Working Group W. Segmuller Request for Comment: 3431 IBM T.J. Watson Research Center Category: Standards Track December 2002
Sieve Extension: Relational Tests
Status of this Memo
このメモの位置付け
This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.
この文書は、インターネットコミュニティのためのインターネット標準トラックプロトコルを指定し、改善のための議論と提案を要求します。このプロトコルの標準化状態と状態への「インターネット公式プロトコル標準」(STD 1)の最新版を参照してください。このメモの配布は無制限です。
Copyright Notice
著作権表示
Copyright (C) The Internet Society (2002). All Rights Reserved.
著作権(C)インターネット協会(2002)。全著作権所有。
Abstract
抽象
This document describes the RELATIONAL extension to the Sieve mail filtering language defined in RFC 3028. This extension extends existing conditional tests in Sieve to allow relational operators. In addition to testing their content, it also allows for testing of the number of entities in header and envelope fields.
この文書では、この拡張は、関係演算子を許可するようにふるいにある既存の条件テストを拡張してRFC 3028で定義されてふるいメールフィルタリング言語へのリレーショナル拡張機能について説明します。彼らのコンテンツをテストすることに加えて、それはまた、ヘッダおよびエンベロープフィールド内のエンティティの数のテストを可能にします。
1 Introduction
1はじめに
Sieve [SIEVE] is a language for filtering e-mail messages at the time of final delivery. It is designed to be implementable on either a mail client or mail server. It is meant to be extensible, simple, and independent of access protocol, mail architecture, and operating system. It is suitable for running on a mail server where users may not be allowed to execute arbitrary programs, such as on black box Internet Messages Access Protocol (IMAP) servers, as it has no variables, loops, nor the ability to shell out to external programs.
ふるいは[SIEVE]最終配達時に電子メールメッセージをフィルタリングするための言語です。メールクライアントまたはメールサーバーのいずれかで実施可能となるように設計されています。拡張可能なシンプル、かつアクセスプロトコル、メールアーキテクチャ、およびオペレーティングシステムから独立であることを意味します。それは、変数、ループ、および外部へのシェルアウトする能力を持っていないように、それは、ユーザーがそのようなブラックボックスインターネットメッセージアクセスプロトコル(IMAP)サーバー上のように任意のプログラムを実行することは許されないことがあり、メールサーバー上で実行されているに適していますプログラム。
The RELATIONAL extension provides relational operators on the address, envelope, and header tests. This extension also provides a way of counting the entities in a message header or address field.
RELATIONAL拡張アドレス、エンベロープ、ヘッダテストに関係演算子を提供します。この拡張は、メッセージのヘッダまたはアドレスフィールド内のエンティティを計数する方法を提供します。
With this extension, the sieve script may now determine if a field is greater than or less than a value instead of just equivalent. One use is for the x-priority field: move messages with a priority greater than 3 to the "work on later" folder. Mail could also be sorted by the from address. Those userids that start with 'a'-'m' go to one folder, and the rest go to another folder.
フィールドだけではなく同等の値より大きい又は小さい場合には、この拡張子を持つ、Sieveスクリプトは、現在決定してもよいです。 1つの用途は、X-優先フィールドのためである:「後で仕事」フォルダに3より大きい優先度を持つメッセージを移動します。メールは、アドレスから順にソートすることができます。 「A」で始まるこれらのユーザID - 「m」は一つのフォルダに移動し、残りは別のフォルダに移動します。
The sieve script can also determine the number of fields in the header, or the number of addresses in a recipient field. For example: are there more than 5 addresses in the to and cc fields.
ふるいスクリプトは、ヘッダー内のフィールドの数、または受信者フィールド内のアドレスの数を決定することができます。たとえば:へとccの分野で5つの以上のアドレスがあります。
2 Conventions used in this document
この文書で使用されている2つの表記
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14, RFC 2119.
この文書のキーワード "MUST"、 "MUST NOT"、 "REQUIRED"、、、、 "べきではない" "べきである" "ないもの" "ものとし"、 "推奨"、 "MAY"、および "OPTIONAL" はありますBCP 14、RFC 2119に記載されるように解釈されます。
Conventions for notations are as in [SIEVE] section 1.1, including the use of [KEYWORDS] and "Syntax:" label for the definition of action and tagged arguments syntax, and the use of [ABNF].
アクションの定義のためのラベルと引数の構文をタグ付けし、[ABNF]の使用:表記の規則は、[キーワード]と「構文」の使用を含む[SIEVE]セクション1.1、のようです。
The capability string associated with extension defined in this document is "relational".
この文書で定義された拡張子に関連付けられた機能文字列は「リレーショナル」です。
3 Comparators
3個のコンパレータ
This document does not define any comparators or exempt any comparators from the require clause. Any comparator used, other than "i;octet" and "i;ascii-casemap", MUST be declared a require clause as defined in [SIEVE].
このドキュメントは、コンパレータを定義したり、必要句からいずれかのコンパレータを免除されません。任意の「I;オクテット」以外使用コンパレータ、および「I; ASCII-CASEMAP」は、[SIEVE]で定義されるように句を必要と宣言しなければなりません。
The "i;ascii-numeric" comparator, as defined in [ACAP], MUST be supported for any implementation of this extension. The comparator "i;ascii-numeric" MUST support at least 32 bit unsigned integers.
「I; ASCII数字」コンパレータは、[ACAP]で定義されるように、この拡張の実装のためにサポートしなければなりません。コンパレータ「I; ASCII数字」とは、少なくとも32ビットの符号なし整数をサポートしなければなりません。
Larger integers MAY be supported. Note: the "i;ascii-numeric" comparator does not support negative numbers.
大きな整数をサポートすることができます。注意:「I; ASCII数字」コンパレータは、負の数をサポートしていません。
4 Match Type
4マッチタイプ
This document defines two new match types. They are the VALUE match type and the COUNT match type.
この文書では、2つの新しいマッチタイプを定義します。彼らは、VALUEのマッチタイプとCOUNTのマッチタイプです。
The syntax is:
構文は次のとおりです。
MATCH-TYPE =/ COUNT / VALUE
MATCH-TYPE = / COUNT / VALUE
COUNT = ":count" relational-match
":カウント" = COUNTリレーショナルマッチを
VALUE = ":value" relational-match
VALUE = ":値" リレーショナル・マッチ
relational-match = DQUOTE ( "gt" / "ge" / "lt" / "le" / "eq" / "ne" ) DQUOTE
リレーショナル・マッチ= DQUOTE( "GT" / "GE" / "LT" / "レ" / "EQ" / "NE")DQUOTE
The VALUE match type does a relational comparison between strings.
VALUEのマッチタイプは、文字列の間の関係の比較を行います。
The VALUE match type may be used with any comparator which returns sort information.
値が一致タイプは、ソート情報を返す任意のコンパレータと共に使用することができます。
Leading and trailing white space MUST be removed from the value of the message for the comparison. White space is defined as
ホワイトスペースを先頭と末尾の比較のためのメッセージの値から除去しなければなりません。ホワイトスペースは、以下のように定義されます
SP / HTAB / CRLF
SP / HTAB / CRLF
A value from the message is considered the left side of the relation. A value from the test expression, the key-list for address, envelope, and header tests, is the right side of the relation.
メッセージからの値は、関係の左側と考えられます。テスト式、アドレス、エンベロープ、ヘッダ試験用鍵リストからの値が、関係の右側です。
If there are multiple values on either side or both sides, the test is considered true, if any pair is true.
いずれかの側または両側に複数の値が存在する場合、任意の対が真である場合、試験は、真であると考えられます。
The COUNT match type first determines the number of the specified entities in the message and does a relational comparison of the number of entities to the values specified in the test expression.
COUNTマッチタイプは、最初のメッセージで指定されたエンティティの数を決定し、テスト式で指定された値にエンティティの数の関係の比較を行います。
The COUNT match type SHOULD only be used with numeric comparators.
COUNTマッチタイプは、数値の比較に使用する必要があります。
The Address Test counts the number of recipients in the specified fields. Group names are ignored.
アドレステストは、指定されたフィールド内の受信者の数をカウントします。グループ名は無視されます。
The Envelope Test counts the number of recipients in the specified envelope parts. The envelope "to" will always have only one entry, which is the address of the user for whom the sieve script is running. There is no way a sieve script can determine if the message was actually sent to someone else using this test. The envelope "from" will be 0 if the MAIL FROM is blank, or 1 if MAIL FROM is not blank.
封筒のテストは、指定された封筒の部品内の受信者の数をカウントします。ふるいスクリプトが実行されている誰のためのユーザーのアドレスは常に持っています唯一のエントリ、「へ」封筒。メッセージが実際にこのテストを使用して他の誰かに送信された場合ふるいスクリプトが判断できる方法はありません。以下からのメールが空白でない場合は「から」エンベロープは0からのメールが空白の場合、または1になります。
The Header Test counts the total number of instances of the specified fields. This does not count individual addresses in the "to", "cc", and other recipient fields.
ヘッダーのテストは、指定したフィールドのインスタンスの合計数をカウントします。これは、「へ」、「CC」、および他の受信者フィールドに個々のアドレスをカウントされません。
In all cases, if more than one field name is specified, the counts for all specified fields are added together to obtain the number for comparison. Thus, specifying ["to", "cc"] in an address COUNT test, comparing the total number of "to" and "cc" addresses; if separate counts are desired, they must be done in two comparisons, perhaps joined by "allof" or "anyof".
複数のフィールド名が指定されている場合、すべてのケースでは、指定したすべてのフィールドのカウントは、比較のために番号を取得するために一緒に追加されます。したがって、「へ」および「CC」アドレスの総数を比較し、アドレスカウント試験の[「に」、「CC」]を指定。個別のカウントが望まれている場合、彼らはおそらく「ALLOF」または「anyof」によって連結された、2つの比較で行わなければなりません。
5 Security Considerations
5セキュリティに関する考慮事項
Security considerations are discussed in [SIEVE].
セキュリティの考慮事項は、[SIEVE]で議論されています。
An implementation MUST ensure that the test for envelope "to" only reflects the delivery to the current user. It MUST not be possible for a user to determine if this message was delivered to someone else using this test.
実装は、「へ」エンベロープのテストは、現在のユーザーのみへの配信を反映していることを保証しなければなりません。これは、このメッセージは、このテストを使用して他の誰かに配信されたかどうかを判断するために、ユーザーのために可能であってはなりません。
6 Example
6例
Using the message:
メッセージを使用します:
received: ... received: ... subject: example to: foo@example.com.invalid, baz@example.com.invalid cc: qux@example.com.invalid
受信...受信...件名:例に:foo@example.com.invalid、baz@example.com.invalid CC:qux@example.com.invalid
The test:
テスト:
address :count "ge" :comparator "i;ascii-numeric" ["to", "cc"] ["3"]
アドレス:数 "GE":コンパレータ "I; ASCII数字" [ "と"、 "CC"] [ "3"]
would be true and the test
真とテストになります
anyof ( address :count "ge" :comparator "i;ascii-numeric" ["to"] ["3"], address :count "ge" :comparator "i;ascii-numeric" ["cc"] ["3"] )
anyof(アドレス: "GE" をカウント:コンパレータ "I; ASCII数字" [ "と"] [ "3"]、住所:カウント "GE":コンパレータ "I; ASCII数字" [ "CC"] [」 3" ])
would be false.
偽のだろう。
To check the number of received fields in the header, the following test may be used:
ヘッダ内の受信されたフィールドの数を確認するために、以下の試験を使用することができます。
header :count "ge" :comparator "i;ascii-numeric" ["received"] ["3"]
ヘッダ:カウント "GE":コンパレータ "I; ASCII数字" [ "受信"] [ "3"]
This would return false. But
これはfalseを返します。しかし
header :count "ge" :comparator "i;ascii-numeric" ["received", "subject"] ["3"]
ヘッダ:カウント "GE":コンパレータ "I; ASCII数字" [ "受信"、 "対象"] [ "3"]
would return true.
trueを返します。
The test:
テスト:
header :count "ge" :comparator "i;ascii-numeric" ["to", "cc"] ["3"]
will always return false on an RFC 2822 compliant message [RFC2822], since a message can have at most one "to" field and at most one "cc" field. This test counts the number of fields, not the number of addresses.
メッセージは最大で1つの「へ」のフィールドで、最も1「CC」フィールドで持つことができるので、常に、RFC 2822に準拠したメッセージ[RFC2822]にfalseを返します。このテストは、フィールドの数ではなく、アドレスの数をカウントします。
7 Extended Example
7拡張例
require ["relational", "comparator-i;ascii-numeric"];
[ "リレーショナル"、 "コンパレータ-Iを、ASCII数字"]が必要です。
if header :value "lt" :comparator "i;ascii-numeric" ["x-priority"] ["3"] { fileinto "Priority"; }
もしヘッダ:値 "LT":コンパレータ "I; ASCII数値" [ "X-優先"] [ "3"] {のfileinto "優先"。 }
elseif address :count "gt" :comparator "i;ascii-numeric" ["to"] ["5"] { # everything with more than 5 recipients in the "to" field # is considered SPAM fileinto "SPAM"; }
ELSEIFアドレス: "GT" を数える:コンパレータ "I; ASCII数字" [ "と"] [ "5"] { "から" フィールド#以上5つの受信者と#すべてが "SPAM" のfileinto SPAMと考えられています。 }
elseif address :value "gt" :all :comparator "i;ascii-casemap" ["from"] ["M"] { fileinto "From N-Z"; } else { fileinto "From A-M"; }
if allof ( address :count "eq" :comparator "i;ascii-numeric" ["to", "cc"] ["1"] , address :all :comparator "i;ascii-casemap" ["to", "cc"] ["me@foo.example.com.invalid"] { fileinto "Only me"; }
もしALLOF(アドレス: "EQ" を数える:コンパレータは "I; ASCII数字" [ "と"、 "CC"] [ "1"]、住所:すべて:コンパレータ "I; ASCII-CASEMAP" [ "と"、 { "自分のみ" のfileinto;} "CC"] [ "me@foo.example.com.invalid"]
8 IANA Considerations
8つのIANAの考慮事項
The following template specifies the IANA registration of the Sieve extension specified in this document:
次のテンプレートは、この文書で指定されたSieve拡張のIANA登録を指定します。
To: iana@iana.org Subject: Registration of new Sieve extension
To:iana@iana.org件名:新しいふるい拡張の登録
Capability name: RELATIONAL Capability keyword: relational Capability arguments: N/A Standards Track/IESG-approved experimental RFC number: this RFC Person and email address to contact for further information: Wolfgang Segmuller IBM T.J. Watson Research Center 30 Saw Mill River Rd Hawthorne, NY 10532
能力名:RELATIONAL能力キーワード:リレーショナル機能引数:N / A標準化過程/ IESGが承認した実験的RFC番号:このRFCの人とEメールアドレス詳細のために連絡する:ヴォルフガングSegmuller IBM T.J。ワトソン研究所30ソウミルリバーRdのホーソーン、NY 10532
Email: whs@watson.ibm.com
メール:whs@watson.ibm.com
This information should be added to the list of sieve extensions given on http://www.iana.org/assignments/sieve-extensions.
この情報はhttp://www.iana.org/assignments/sieve-extensionsに与えられたふるい拡張子のリストに追加する必要があります。
9 References
9つの参考文献
[SIEVE] Showalter, T., "Sieve: A Mail Filtering Language", RFC 3028, January 2001.
[SIEVE]ショーウォルター監督、T.、 "ふるい:メールフィルタ言語"、RFC 3028、2001年1月。
[Keywords] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[キーワード]ブラドナーの、S.、 "要件レベルを示すためにRFCsにおける使用のためのキーワード"、BCP 14、RFC 2119、1997年3月。
[ABNF] Crocker, D., "Augmented BNF for Syntax Specifications: ABNF", RFC 2234, November 1997.
[ABNF]クロッカー、D.、 "構文仕様のための増大しているBNF:ABNF"、RFC 2234、1997年11月。
[RFC2822] Resnick, P., "Internet Message Format", RFC 2822, April 2001.
[RFC2822]レズニック、P.、 "インターネットメッセージ形式"、RFC 2822、2001年4月。
[ACAP] Newman, C. and J. G. Myers, "ACAP -- Application Configuration Access Protocol", RFC 2244, November 1997.
[ACAP]ニューマン、C.およびJ. G.マイヤーズ、 "ACAP - アプリケーション構成アクセスプロトコル"、RFC 2244、1997年11月。
10 Author's Address
10著者のアドレス
Wolfgang Segmuller IBM T.J. Watson Research Center 30 Saw Mill River Rd Hawthorne, NY 10532
ヴォルフガングSegmuller IBM T.J。ワトソン研究所30ソウミルリバーRdのホーソーン、NY 10532
EMail: whs@watson.ibm.com
メールアドレス:whs@watson.ibm.com
11 Full Copyright Statement
11完全な著作権声明
Copyright (C) The Internet Society (2002). All Rights Reserved.
著作権(C)インターネット協会(2002)。全著作権所有。
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.
この文書とその翻訳は、コピーして他の人に提供し、それ以外についてはコメントまたは派生物は、いかなる種類の制限もなく、全体的にまたは部分的に、準備コピーし、公表して配布することができることを説明したり、その実装を支援することができます、上記の著作権表示とこの段落は、すべてのそのようなコピーや派生物に含まれていることを条件とします。しかし、この文書自体は著作権のための手順はで定義されている場合には、インターネット標準を開発するために必要なものを除き、インターネットソサエティもしくは他のインターネット関連団体に著作権情報や参照を取り除くなど、どのような方法で変更されないかもしれませんインターネット標準化プロセスが続く、または英語以外の言語に翻訳するために、必要に応じなければなりません。
The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.
上記の制限は永久で、インターネット学会やその後継者や譲渡者によって取り消されることはありません。
This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
この文書とここに含まれている情報は、基礎とインターネットソサエティおよびインターネットエンジニアリングタスクフォースはすべての保証を否認し、明示または黙示、その情報の利用がない任意の保証を含むがこれらに限定されない「として、」上に設けられています特定の目的への権利または商品性または適合性の黙示の保証を侵害します。
Acknowledgement
謝辞
Funding for the RFC Editor function is currently provided by the Internet Society.
RFC Editor機能のための基金は現在、インターネット協会によって提供されます。