Network Working Group A. Melnikov Request for Comments: 5490 Isode Limited Category: Standards Track March 2009
The Sieve Mail-Filtering Language -- Extensions for Checking Mailbox Status and Accessing Mailbox Metadata
ふるいのメールフィルタリング言語 - メールボックスのメタデータをメールボックスの状態を確認し、アクセスするための拡張機能
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) 2009 IETF Trust and the persons identified as the document authors. All rights reserved.
著作権(C)2009 IETF信託とドキュメントの作成者として特定の人物。全著作権所有。
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents in effect on the date of publication of this document (http://trustee.ietf.org/license-info). Please review these documents carefully, as they describe your rights and restrictions with respect to this document.
この文書では、BCP 78と、この文書(http://trustee.ietf.org/license-info)の発行日に有効なIETFドキュメントに関連IETFトラストの法律の規定に従うものとします。彼らは、この文書に関してあなたの権利と制限を説明するように、慎重にこれらの文書を確認してください。
This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English.
この材料の一部がIETFトラストにこのような材料の変更を許可する権利を与えられていない可能性がありますにこの文書は、2008年、IETFドキュメントまたは11月10日以前に発行または公開さIETF貢献から著作権を支配する者(複数可)材料を含んでいてもよいですIETF標準化プロセスの外。そのような材料の著作権を管理者(単数または複数)から適切なライセンスを取得することなく、この文書は、IETF標準化過程の外側修正されないかもしれません、そして、それの派生物は、IETF標準化過程の外側に作成されない場合があり、それをフォーマットする以外出版RFCとして、英語以外の言語に翻訳します。
Abstract
抽象
This memo defines an extension to the Sieve mail filtering language (RFC 5228) for accessing mailbox and server annotations, checking for mailbox existence, and controlling mailbox creation on "fileinto" action.
このメモは、メールボックスとサーバーの注釈にアクセスし、メールボックスの存在をチェックし、「のfileinto」行動上のメールボックスの作成を制御するためのふるいのメールフィルタリング言語(RFC 5228)に拡張を定義します。
Table of Contents
目次
1. Introduction ....................................................2 2. Conventions Used in This Document ...............................2 3. "mailbox" and "mboxmetadata" Extensions .........................2 3.1. Test "mailboxexists" .......................................2 3.2. ":create" Argument to "fileinto" Command ...................3 3.3. Test "metadata" ............................................4 3.4. Test "metadataexists" ......................................4 4. "servermetadata" Extension ......................................5 4.1. Test "servermetadata" ......................................5 4.2. Test "servermetadataexists" ................................6 5. Security Considerations .........................................6 6. IANA Considerations .............................................7 7. Acknowledgements ................................................7 8. References ......................................................8 8.1. Normative References .......................................8 8.2. Informative References .....................................8
This memo defines an extension to the Sieve mail filtering language [SIEVE] for accessing mailbox and server annotations. This allows for customization of the Sieve engine behaviour based on variables set using [METADATA].
このメモは、メールボックスとサーバーの注釈にアクセスするためのふるいのメールフィルタリング言語[SIEVE]への拡張を定義します。 [メタデータ]を使用して設定し、この変数に基づいて、ふるいエンジンの動作のカスタマイズを可能にします。
This document also defines an extension for checking for mailbox existence and for controlling mailbox creation on "fileinto" action.
また、このドキュメントでは、メールボックスの存在をチェックすると「のfileinto」行動上のメールボックスの作成を制御するための拡張機能を定義します。
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 [KEYWORDS].
この文書のキーワード "MUST"、 "MUST NOT"、 "REQUIRED"、、、、 "べきではない" "べきである" "ないもの" "ものとし"、 "推奨"、 "MAY"、および "OPTIONAL" はあります[キーワード]に記載されているように解釈されます。
Conventions for notations are as in [SIEVE] Section 1.1, including the use of [ABNF].
表記の規則は、[ABNF]の使用を含む[SIEVE]セクション1.1のようにしています。
This document is written with an assumption that readers are familiar with the data model and terms defined in Section 3 of [METADATA].
この文書は、読者がデータ・モデルと[METADATA]のセクション3で定義された用語に精通していることを前提に書かれています。
Usage: mailboxexists <mailbox-names: string-list>
使用法:mailboxexists <メールボックス名:文字列のリスト>
The "mailboxexists" test is true if all mailboxes listed in the "mailbox-names" argument exist in the mailstore, and each allows the user in whose context the Sieve script runs to "deliver" messages into it. When the mailstore is an IMAP server, "delivery" of messages is possible if:
「メールボックス名」引数にリストされているすべてのメールボックスは、メールストアに存在する場合、「mailboxexists」テストが真で、それぞれがSieveスクリプトがそれにメッセージを「届ける」ために実行し、そのコンテキスト内でユーザーを可能にします。メールストアは、IMAPサーバーである場合は、メッセージの「送達」場合に可能です:
a. the READ-WRITE response code is present for the mailbox (see Section 7.1 of [IMAP]), if IMAP Access Control List (ACL) [IMAPACL] is not supported by the server, or
A。読み書きのレスポンスコードは、メールボックスの存在している(セクション7.1を参照の[IMAP])、IMAPアクセス制御リスト(ACL)IMAPACL]サーバによってサポートされていない場合、または
b. the user has 'p' or 'i' rights for the mailbox (see Section 5.2 of [IMAPACL]).
B。ユーザーは、「P」やメールボックスの「I」の権限を([IMAPACL]のセクション5.2を参照します)。
Note that a successful "mailboxexists" test for a mailbox doesn't necessarily mean that a "fileinto" action on this mailbox would succeed. For example, the "fileinto" action might put user over quota. The "mailboxexists" only verifies existence of the mailbox and whether the user in whose context the Sieve script runs has permissions to execute "fileinto" on it.
メールボックスの成功「mailboxexists」テストは、必ずしもこのメールボックスの「のfileinto」アクションが成功することを意味しないことに注意してください。例えば、「のfileinto」アクションは、クォータを介してユーザを置くかもしれません。 「mailboxexistsは」のみメールボックスのとSieveスクリプトが実行されるコンテキストを持つユーザーは、その上に「のfileinto」を実行する権限を持っているかどうかが存在することを確認します。
The capability string for use with the require command is "mailbox".
必要とコマンドで使用するための機能文字列は、「メールボックス」です。
Example: The following example assumes that the Sieve engine also supports "reject" [REJECT] and "fileinto" [SIEVE]. However, these extensions are not required in order to implement the "mailbox" extension.
例:以下の例では、ふるいエンジンはまた、[REJECT]と「のfileinto」[SIEVE]「拒否」をサポートすることを前提としています。しかし、これらの拡張機能は、「メールボックス」の拡張を実装するために必要とされていません。
require ["fileinto", "reject", "mailbox"]; if mailboxexists "Partners" { fileinto "Partners"; } else { reject "This message was not accepted by the Mailstore"; }
Usage: fileinto [:create] <mailbox: string>
使用法:[:作成] <メールボックス:文字列>のfileinto
If the optional ":create" argument is specified with "fileinto", it instructs the Sieve interpreter to create the specified mailbox, if needed, before attempting to deliver the message into the specified mailbox. If the mailbox already exists, this argument is ignored. Failure to create the specified mailbox is considered to be an error.
「:作成」オプションの場合は、引数が「のfileinto」で指定され、それが指定したメールボックスにメッセージを配信しようとする前に、必要に応じて、指定したメールボックスを作成するためにふるいインタプリタに指示します。メールボックスがすでに存在する場合、この引数は無視されます。指定されたメールボックスを作成するには、失敗は誤りであると考えられています。
The capability string for use with the ":create" parameter is "mailbox".
「:作成」で使用するための機能文字列パラメータには、「メールボックス」です。
Usage: metadata [MATCH-TYPE] [COMPARATOR] <mailbox: string> <annotation-name: string> <key-list: string-list>
使用方法:メタデータ[MATCH-TYPE] [コンパレータ] <メールボックス:文字列> <注釈名:文字列>の<key-リスト:文字列のリスト>
This test retrieves the value of the mailbox annotation "annotation-name" for the mailbox "mailbox" [METADATA]. The retrieved value is compared to the "key-list". The test returns true if the annotation exists and its value matches any of the keys.
この試験は、メールボックス「メールボックス」[METADATA]のメールボックス注釈「注釈名」の値を取得します。取得された値は、「キー・リスト」と比較されます。注釈が存在し、その値は、キーのいずれかと一致する場合、テストがtrueを返します。
The default match type is ":is" [SIEVE]. The default comparator is "i;ascii-casemap" [SIEVE].
「:を」デフォルトのマッチタイプは[SIEVE]。 ";アスキー・CASEMAP I" [SIEVE]デフォルトのコンパレータです。
The capability string for use with the require command is "mboxmetadata".
必要とコマンドで使用するための機能文字列は「mboxmetadata」です。
Annotations MUST be accessed with the permissions of the user in whose context the Sieve script runs, and annotations starting with the "/private" prefix MUST be those of the user in whose context the Sieve script runs.
注釈は、そのコンテキストSieveスクリプトが実行中のユーザのものでなければならない「/プライベート」プレフィックスで始まるコンテキストSieveスクリプトが実行中のユーザーの権限、および注釈にアクセスする必要があります。
Example: The following example assumes that the Sieve engine also supports the "vacation" [VACATION] extension. However, this extension is not required in order to implement the "mboxmetadata" extension.
例:以下の例では、Sieveエンジンはまた、「休暇」[VACATION]拡張をサポートしていることを前提としています。しかし、この拡張機能は、「mboxmetadata」拡張を実装するために必要とされていません。
require ["mboxmetadata", "vacation"];
[ "mboxmetadata"、 "休暇を"]が必要です。
if metadata :is "INBOX" "/private/vendor/vendor.isode/auto-replies" "on" {
メタデータの場合:{「INBOX」「/private/vendor/vendor.isode/auto-replies」「オン」であります
vacation text: I'm away on holidays till March 2009. Expect a delay. . }
休暇のテキスト:私は2009年3月までの休日に離れてるの遅延を期待しています。 。 }
Usage: metadataexists <mailbox: string> <annotation-names: string-list>
使用法:metadataexists <メールボックス:文字列> <注釈-名:文字列のリスト>
The "metadataexists" test is true if all of the annotations listed in the "annotation-names" argument exist (i.e., have non-NIL values) for the specified mailbox.
注釈の全てが「注釈名」引数に記載されている場合、テストが真である「metadataexists」は、指定されたメールボックスの(すなわち、非NIL値を有する)が存在します。
The capability string for use with the require command is "mboxmetadata".
必要とコマンドで使用するための機能文字列は「mboxmetadata」です。
Usage: servermetadata [MATCH-TYPE] [COMPARATOR] <annotation-name: string> <key-list: string-list>
使用法:servermetadata [MATCH-TYPE] [コンパレータ] <注釈名:文字列>の<key-リスト:文字列のリスト>
This test retrieves the value of the server annotation "annotation-name" [METADATA]. The retrieved value is compared to the "key-list". The test returns true if the annotation exists and its value matches any of the keys.
このテストでは、サーバアノテーション「アノテーション名」[METADATA]の値を取得します。取得された値は、「キー・リスト」と比較されます。注釈が存在し、その値は、キーのいずれかと一致する場合、テストがtrueを返します。
The default match type is ":is". The default comparator is "i;ascii-casemap".
「:を」デフォルトのマッチタイプがあります。デフォルトのコンパレータは "I; ASCII-CASEMAP" です。
The capability string for use with the require command is "servermetadata".
必要とコマンドで使用するための機能文字列は「servermetadata」です。
Annotations MUST be accessed with the permissions of the user in whose context the Sieve script runs, and annotations starting with the "/private" prefix MUST be those of the user in whose context the Sieve script runs.
注釈は、そのコンテキストSieveスクリプトが実行中のユーザのものでなければならない「/プライベート」プレフィックスで始まるコンテキストSieveスクリプトが実行中のユーザーの権限、および注釈にアクセスする必要があります。
Example: The following example assumes that the Sieve engine also supports "variables" [VARIABLES], "enotify" [NOTIFY], and "envelope" [SIEVE] extensions. However, these extensions are not required in order to implement the "servermetadata" extension.
例:以下の例では、Sieveエンジンはまた、「変数」[変数]、[NOTIFY]「enotify」、および「封筒」[SIEVE]の拡張機能をサポートしていることを前提としています。しかし、これらの拡張機能は、「servermetadata」拡張を実装するために必要とされていません。
require ["enotify", "servermetadata", "variables", "envelope"];
[ "enotify"、 "servermetadata"、 "変数"、 "封筒"]が必要です。
if servermetadata :matches "/private/vendor/vendor.isode/notification-uri" "*" { set "notif_uri" "${0}"; }
もしservermetadata:マッチ "/private/vendor/vendor.isode/notification-uri" "*" {セット "notif_uri" "$ {0}"。 }
if not string :is "${notif_uri}" "none" { # :matches is used to get the MAIL FROM address if envelope :all :matches "from" "*" { set "env_from" " [really: ${1}]"; }
ない文字列の場合:「から「*」{「env_from」を設定し、本当に[ "$ {1「$ {notif_uri}」「なし」:すべて:マッチが:マッチが封筒があればアドレスからメールを取得するために使用されている{#」であります}] "。 }
# :matches is used to get the value of the Subject header if header :matches "Subject" "*" { set "subject" "${1}"; }
# :matches is used to get the address from the From header if address :matches :all "from" "*" { set "from_addr" "${1}"; }
#:マッチは、ヘッダからのアドレスを取得するために使用される場合、アドレス:マッチ:全て「from_addr「集合{」*」「から」「$ {1}」。 }
notify :message "${from_addr}${env_from}: ${subject}" "${notif_uri}"; }
通知:メッセージ "$ {from_addr} $ {env_from} $ {件名}" "$ {notif_uri}"。 }
Usage: servermetadataexists <annotation-names: string-list>
使用法:servermetadataexists <注釈-名:文字列のリスト>
The "servermetadataexists" test is true if all of the server annotations listed in the "annotation-names" argument exist (i.e., have non-NIL values).
「注釈名」引数に記載されているサーバの注釈の全てが存在する場合、「servermetadataexists」テストが真である(すなわち、非NIL値を有します)。
The capability string for use with the require command is "servermetadata".
必要とコマンドで使用するための機能文字列は「servermetadata」です。
Extensions defined in this document deliberately don't provide a way to modify annotations.
この文書で定義された拡張機能は、故意に注釈を変更する方法はありません。
A failure to retrieve data due to the server storing the annotations being down or otherwise inaccessible may alter the result of Sieve processing. So implementations SHOULD treat a temporary failure to retrieve annotations in the same manner as a temporary failure to retrieve a Sieve script. For example, if the Sieve script is stored in the Lightweight Directory Access Protocol (LDAP) and the script can't be retrieved when a message is processed, then the agent performing Sieve processing can, for example, assume that the script doesn't exist or delay message delivery until the script can be retrieved successfully. Annotations should be treated as if they are a part of the script itself, so a temporary failure to retrieve them should be handled in the same way as a temporary failure to retrieve the Sieve script itself.
注釈がダウンしているか、そうでなければアクセス不能な記憶によるサーバーへデータを取得する失敗は篩処理の結果を変更することができます。だから、実装は、Sieveスクリプトを検索するための一時的な障害と同様に注釈を取得するための一時的な障害を扱うべきです。例えば、Sieveスクリプトは、ライトウェイトディレクトリアクセスプロトコル(LDAP)に格納され、スクリプトは、メッセージが処理されるとき、その後ふるい処理を行うエージェントは、例えば、スクリプトがないと仮定することができる取得できない場合存在またはスクリプトが正常に取得できるようになるまでメッセージの配信を遅延させます。彼らはスクリプト自体の一部であるかのように注釈が扱われるべきであるので、それらを取得するための一時的な障害は、Sieveスクリプト自体を取得するための一時的な障害と同じように処理しなければなりません。
Protocols/APIs used to retrieve annotations MUST provide at least the same level of confidentiality as protocols/APIs used to retrieve Sieve scripts. For example, if Sieve scripts are retrieved using LDAP secured with Transport Layer Security (TLS) encryption, then the protocol used to retrieve annotations must use a comparable mechanism for providing connection confidentiality. In particular, the protocol used to retrieve annotations must not be lacking encryption.
注釈を取得するために使用されるプロトコル/ APIは、Sieveスクリプトを検索するために使用されるプロトコル/ APIのように機密性の少なくとも同じレベルを提供しなければなりません。 Sieveスクリプトは、トランスポート層セキュリティ(TLS)暗号化で保護LDAPを使用して取得している場合たとえば、その後、注釈を取得するために使用されるプロトコルは、接続の機密性を提供するための同等のメカニズムを使用する必要があります。具体的には、注釈を取得するために使用されるプロトコルは、暗号化を欠いてはいけません。
IANA has added the following registrations to the list of Sieve extensions:
IANAは、ふるい拡張子のリストに次の登録を追加しました:
To: iana@iana.org Subject: Registration of new Sieve extension Capability name: mailbox Description: adds test for checking for mailbox existence and a new optional argument to fileinto for creating a mailbox before attempting mail delivery. RFC number: this RFC Contact address: The Sieve discussion list <ietf-mta-filters@imc.org>
To:iana@iana.org件名:メールボックス説明:新しいふるい拡張機能名の登録は、メールボックスの存在とメール配信を試みる前に、メールボックスを作成するためのfileintoするための新しいオプションの引数をチェックするためのテストを追加します。 RFC番号:このRFCの連絡先アドレス:ふるいディスカッションリスト<ietf-mta-filters@imc.org>
Capability name: mboxmetadata Description: adds tests for checking for mailbox metadata item existence and for retrieving of a mailbox metadata value. RFC number: this RFC Contact address: The Sieve discussion list <ietf-mta-filters@imc.org>
能力名:mboxmetadata説明:メールボックスのメタデータ項目の有無をチェックするためと、メールボックスのメタデータ値を取得するためのテストを追加します。 RFC番号:このRFCの連絡先アドレス:ふるいディスカッションリスト<ietf-mta-filters@imc.org>
Capability name: servermetadata Description: adds tests for checking for server metadata item existence and for retrieving of a server metadata value. RFC number: this RFC Contact address: The Sieve discussion list <ietf-mta-filters@imc.org>
能力名:servermetadata説明:サーバーのメタデータ項目の存在を確認するために、サーバのメタデータ値を取得するためのテストを追加します。 RFC番号:このRFCの連絡先アドレス:ふるいディスカッションリスト<ietf-mta-filters@imc.org>
Thanks to Cyrus Daboo for initial motivation for this document.
この文書の最初の動機のためのCyrus Dabooに感謝します。
Thanks to Barry Leiba, Randall Gellens, and Aaron Stone for helpful comments on this document.
このドキュメントの役に立つコメントのバリー・レイバ、ランドールGellens、とアーロン・ストーンに感謝します。
The author also thanks the Open Mobile Alliance's Mobile Email working group for providing a set of requirements for mobile devices, guiding some of the extensions in this document.
著者もこの文書の拡張子の一部を案内する、モバイルデバイス用の一連の要件を提供するためのおかげでオープン・モバイル・アライアンスモバイルメールワーキンググループを。
[ABNF] Crocker, D. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, January 2008.
、STD 68、RFC 5234、2008年1月: "ABNF構文仕様のための増大しているBNF" [ABNF]クロッカー、D.、およびP. Overell、。
[IMAP] Crispin, M., "Internet Message Access Protocol - Version 4rev1", RFC 3501, March 2003.
[IMAP]クリスピン、M.、 "インターネットメッセージアクセスプロトコル - バージョン4rev1"、RFC 3501、2003年3月。
[IMAPACL] Melnikov, A., "IMAP4 Access Control List (ACL) Extension", RFC 4314, December 2005.
[IMAPACL]メルニコフ、A.、 "IMAP4アクセス制御リスト(ACL)拡張"、RFC 4314、2005年12月。
[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月。
[METADATA] Daboo, C., "The IMAP METADATA Extension", RFC 5464, February 2009.
[メタデータ] Daboo、C.、 "IMAPメタデータの拡張"、RFC 5464、2009年2月。
[SIEVE] Guenther, P. and T. Showalter, "Sieve: An Email Filtering Language", RFC 5228, January 2008.
[SIEVE]ギュンター、P.およびT.ショーウォルター監督、 "ふるい:メールフィルタリング言語"、RFC 5228、2008年1月。
[NOTIFY] Melnikov, A., Leiba, B., Segmuller, W., and T. Martin, "Sieve Email Filtering: Extension for Notifications", RFC 5435, January 2009.
[NOTIFY]メルニコフ、A.、Leiba、B.、Segmuller、W.、およびT.マーティン、 "ふるい電子メールフィルタリング:通知のための拡張"、RFC 5435、2009年1月。
[REJECT] Stone, A., "Sieve Email Filtering: Reject and Extended Reject Extensions", RFC 5429, March 2009.
2009年3月、RFC 5429を:石、A.、 "機能拡張を拒否拒否し、拡張ふるいメールフィルタリング" [REJECT]。
[VACATION] Showalter, T. and N. Freed, "Sieve Email Filtering: Vacation Extension", RFC 5230, January 2008.
[VACATION]ショーウォルター監督、T.およびN.フリード、 "ふるいメールフィルタリング:休暇延長"、RFC 5230、2008年1月。
[VARIABLES] Homme, K., "Sieve Email Filtering: Variables Extension", RFC 5229, January 2008.
[変数]オム、K.、 "ふるいメールフィルタリング:変数の拡張"、RFC 5229、2008年1月。
Author's Address
著者のアドレス
Alexey Melnikov Isode Limited 5 Castle Business Village 36 Station Road Hampton, Middlesex TW12 2BX UK
アレクセイ・メルニコフISODE限定5キャッスルビジネス村の36の駅道ハンプトン、ミドルTW12 2BX英国
EMail: Alexey.Melnikov@isode.com
メールアドレス:Alexey.Melnikov@isode.com