[要約] RFC 5490は、Sieveメールフィルタリング言語の拡張であり、メールボックスの状態のチェックとメールボックスのメタデータへのアクセスを可能にします。このRFCの目的は、Sieve言語をより柔軟で強力なメールフィルタリングツールにすることです。

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

Sieve Mail-Filtering言語 - メールボックスのステータスをチェックしてメールボックスメタデータにアクセスするための拡張機能

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.

Copyright(c)2009 IETF Trustおよび文書著者として特定された人。全著作権所有。

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 Trustの法的規定の対象となります。この文書に関するあなたの権利と制限を説明するので、これらの文書を注意深く確認してください。

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.

このドキュメントには、2008年11月10日までに公開または公開されたIETFドキュメントまたはIETFの貢献からの資料が含まれている場合があります。IETF標準プロセスの外。そのような資料の著作権を制御する人から適切なライセンスを取得しないと、このドキュメントはIETF標準プロセスの外側に変更されない場合があり、その派生作業は、ITF標準プロセスの外側で作成されない場合があります。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」アクションでのメールボックスの作成を制御するためのSieve Mailフィルタリング言語(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
        
1. Introduction
1. はじめに

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 Mailフィルタリング言語[Sieve]の拡張機能を定義します。これにより、[メタデータ]を使用して設定された変数に基づいて、ふるいエンジンの動作をカスタマイズできます。

This document also defines an extension for checking for mailbox existence and for controlling mailbox creation on "fileinto" action.

このドキュメントでは、メールボックスの存在をチェックし、「FileInto」アクションでメールボックスの作成を制御するための拡張機能を定義しています。

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 [KEYWORDS].

「必須」、「そうしない」、「必須」、「必要」、「「しない」、「そうでない」、「そうではない」、「そうでない」、「推奨」、「5月」、および「オプション」は、[キーワード]で説明されていると解釈されます。

Conventions for notations are as in [SIEVE] Section 1.1, including the use of [ABNF].

表記の規則は、[abnf]の使用を含む[ふるい]セクション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].

このドキュメントは、読者が[メタデータ]のセクション3で定義されているデータモデルと用語に精通しているという仮定で書かれています。

3. "mailbox" and "mboxmetadata" Extensions
3. 「メールボックス」と「Mboxmetadata」拡張機能
3.1. Test "mailboxexists"
3.1. 「MailboxExists」をテストする

Usage: mailboxexists <mailbox-names: string-list> 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 <Mailbox-Names:String-List>「MailboxExists」テストは、「Mailbox-Names」引数にリストされているすべてのメールボックスがメールストアに存在し、それぞれがSive Siveスクリプトが実行されるユーザーを使用することを許可します。「メッセージを配信します。メールストアが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. read-write応答コードは、メールボックスに存在します([IMAP]のセクション7.1を参照)、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」は、メールボックスの存在と、Sive Scriptが実行されるユーザーが「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.

例:次の例は、シーブエンジンが「拒否」[拒否]および「fileinto」[Sieve]もサポートしていることを前提としています。ただし、「メールボックス」拡張機能を実装するためには、これらの拡張機能は必要ありません。

        require ["fileinto", "reject", "mailbox"];
        if mailboxexists "Partners" {
           fileinto "Partners";
        } else {
           reject "This message was not accepted by the Mailstore";
        }
        
3.2. ":create" Argument to "fileinto" Command
3.2. ":「fileinto"コマンドへの「引数」を作成する
   Usage:  fileinto [:create] <mailbox: string>
        

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".

「:create」パラメーターは「メールボックス」で使用する機能文字列です。

3.3. Test "metadata"
3.3. 「メタデータ」をテストする
   Usage:  metadata [MATCH-TYPE] [COMPARATOR]
           <mailbox: string>
           <annotation-name: string> <key-list: string-list>
        

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]のメールボックスアノテーション「Annotation-Name」の値を取得します。取得された値は「キーリスト」と比較されます。注釈が存在し、その値がキーのいずれかと一致する場合、テストはtrueを返します。

The default match type is ":is" [SIEVE]. The default comparator is "i;ascii-casemap" [SIEVE].

デフォルトの一致タイプは ":is" [sive]です。デフォルトのコンパレータは「i; ascii-casemap」[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.

アノテーションは、Sive Scriptが実行されるユーザーの許可を使用してアクセスする必要があり、「/private」プレフィックスから始まる注釈は、Sive Scriptが実行されるユーザーのものでなければなりません。

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.

require ["mboxmetadata", "vacation"];

["mboxmetadata"、 "Vacation"]が必要です。

if metadata :is "INBOX" "/private/vendor/vendor.isode/auto-replies" "on" {

メタデータ:is "Inbox" "/private/vendor/vendor.isode/auto-replies" "on" {

vacation text: I'm away on holidays till March 2009. Expect a delay. . }

休暇のテキスト:私は2009年3月まで休日に離れています。遅延を期待してください。。}

3.4. Test "metadataexists"
3.4. 「メタデータが存在する」テスト
   Usage:  metadataexists <mailbox: string> <annotation-names: string-
           list>
        

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.

指定されたメールボックスに「注釈名」引数にリストされているすべての注釈が存在する(つまり、NIL以外の値を持っている)場合、「メタデータエキシスト」テストは真実です。

The capability string for use with the require command is "mboxmetadata".

要求コマンドで使用する機能文字列は「mboxmetadata」です。

4. "servermetadata" Extension
4. 「ServerMetadata」拡張機能
4.1. Test "servermetadata"
4.1. 「servermetadata」をテストする
   Usage:  servermetadata [MATCH-TYPE] [COMPARATOR]
           <annotation-name: string> <key-list: string-list>
        

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.

このテストは、サーバーアノテーション「Annotation-Name」[Metadata]の値を取得します。取得された値は「キーリスト」と比較されます。注釈が存在し、その値がキーのいずれかと一致する場合、テストはtrueを返します。

The default match type is ":is". The default comparator is "i;ascii-casemap".

デフォルトの一致タイプは「:is」です。デフォルトのコンパレータは「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.

アノテーションは、Sive Scriptが実行されるユーザーの許可を使用してアクセスする必要があり、「/private」プレフィックスから始まる注釈は、Sive Scriptが実行されるユーザーのものでなければなりません。

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.

例:次の例では、シーブエンジンが「変数」[変数]、「enotify」、[notifiy]、および "envelope" [Sieve]拡張もサポートしていることを前提としています。ただし、「servermetadata」拡張機能を実装するためには、これらの拡張機能は必要ありません。

require ["enotify", "servermetadata", "variables", "envelope"];

["enotify"、 "servermetadata"、 "変数"、 "envelope"]を必要とします。

       if servermetadata :matches
          "/private/vendor/vendor.isode/notification-uri" "*" {
           set "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}]";
           }
        
           # :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}";
           }
        
           notify :message "${from_addr}${env_from}: ${subject}"
                  "${notif_uri}";
       }
        
4.2. Test "servermetadataexists"
4.2. 「servermetadataexists」をテストする
   Usage:  servermetadataexists
           <annotation-names: string-list>
        

The "servermetadataexists" test is true if all of the server annotations listed in the "annotation-names" argument exist (i.e., have non-NIL values).

「Annotation-Names」引数にリストされているサーバーアノテーションのすべてが存在する場合(つまり、NIL以外の値を持っている)、「ServerMetadataExists」テストは真実です。

The capability string for use with the require command is "servermetadata".

要求コマンドで使用する機能文字列は「servermetadata」です。

5. Security Considerations
5. セキュリティに関する考慮事項

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スクリプトがLightWeight Directory Access Protocol(LDAP)に保存され、メッセージが処理されたときにスクリプトを取得できない場合、Sieve Processingを実行するエージェントは、たとえば、スクリプトではないと仮定できます。スクリプトを正常に取得できるまで、存在するか、メッセージ配信を遅らせます。注釈は、それらがスクリプト自体の一部であるかのように扱う必要があるため、それらを取得するのに一時的な失敗は、ふるいスクリプト自体を一時的に故障させるのと同じ方法で処理する必要があります。

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は、シーブスクリプトの取得に使用されるプロトコル/APIと少なくとも同じレベルの機密性を提供する必要があります。たとえば、輸送層セキュリティ(TLS)暗号化で保護されたLDAPを使用してシーブスクリプトが取得される場合、アノテーションを取得するために使用されるプロトコルは、接続の機密性を提供するために同等のメカニズムを使用する必要があります。特に、注釈を取得するために使用されるプロトコルは、暗号化を欠いていてはなりません。

6. IANA Considerations
6. IANAの考慮事項

IANA has added the following registrations to the list of Sieve extensions:

Ianaは、Sieve Extensionsのリストに次の登録を追加しました。

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>

宛先: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>

7. Acknowledgements
7. 謝辞

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.

この文書に関する有益なコメントをしてくれたBarry Leiba、Randall Gellens、およびAaron Stoneに感謝します。

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.

著者はまた、オープンモバイルアライアンスのモバイルメールワーキンググループに、モバイルデバイスに一連の要件を提供してくれたことに感謝し、このドキュメントの拡張機能の一部を導きます。

8. References
8. 参考文献
8.1. Normative References
8.1. 引用文献

[ABNF] Crocker, D. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, January 2008.

[ABNF] Crocker、D。およびP. Overell、「構文仕様のためのBNFの増強:ABNF:STD 68、RFC 5234、2008年1月。

[IMAP] Crispin, M., "Internet Message Access Protocol - Version 4rev1", RFC 3501, March 2003.

[IMAP] Crispin、M。、「インターネットメッセージアクセスプロトコル -バージョン4REV1」、RFC 3501、2003年3月。

[IMAPACL] Melnikov, A., "IMAP4 Access Control List (ACL) Extension", RFC 4314, December 2005.

[IMAPACL] Melnikov、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.

[キーワード] Bradner、S。、「要件レベルを示すためにRFCで使用するためのキーワード」、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] Guenther、P。and T. Showalter、「Sieve:An Email Filtering Language」、RFC 5228、2008年1月。

8.2. Informative References
8.2. 参考引用

[NOTIFY] Melnikov, A., Leiba, B., Segmuller, W., and T. Martin, "Sieve Email Filtering: Extension for Notifications", RFC 5435, January 2009.

[Notify] Melnikov、A.、Leiba、B.、Segmuller、W。、およびT. Martin、「Sieve Emailフィルタリング:通知の拡張」、RFC 5435、2009年1月。

[REJECT] Stone, A., "Sieve Email Filtering: Reject and Extended Reject Extensions", RFC 5429, March 2009.

[Reject] Stone、A。、「Sieve Emailフィルタリング:拒否および拡張拒否拡張機能」、RFC 5429、2009年3月。

[VACATION] Showalter, T. and N. Freed, "Sieve Email Filtering: Vacation Extension", RFC 5230, January 2008.

[休暇] Showalter、T。and N. Freed、「Sieve Emailフィルタリング:休暇拡張」、RFC 5230、2008年1月。

[VARIABLES] Homme, K., "Sieve Email Filtering: Variables Extension", RFC 5229, January 2008.

[変数] Homme、K。、「Sieve Emailフィルタリング:変数拡張」、RFC 5229、2008年1月。

Author's Address

著者の連絡先

Alexey Melnikov Isode Limited 5 Castle Business Village 36 Station Road Hampton, Middlesex TW12 2BX UK

Alexey Melnikov Isode Limited 5 Castle Business Village 36 Station Road Hampton、Middlesex TW12 2BX UK

   EMail: Alexey.Melnikov@isode.com