[要約] 要約: RFC 5703は、SieveメールフィルタリングのためのMIMEパートテスト、反復、抽出、置換、およびエンクロージャに関する仕様です。目的: このRFCの目的は、SieveスクリプトでMIMEパートのテスト、操作、および変更を行うための標準的な方法を提供することです。
Network Working Group T. Hansen Request for Comments: 5703 AT&T Laboratories Category: Standards Track C. Daboo Apple Inc. October 2009
Sieve Email Filtering: MIME Part Tests, Iteration, Extraction, Replacement, and Enclosure
ふるい電子メールフィルタリング:MIMEパーツテスト、反復、抽出、交換、エンクロージャー
Abstract
概要
This document defines extensions to the Sieve email filtering language to permit analysis and manipulation of the MIME body parts of an email message.
このドキュメントでは、電子メールメッセージのmime体の部分の分析と操作を可能にするために、シーブメールのフィルタリング言語への拡張機能を定義します。
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 (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the BSD License.
このドキュメントは、BCP 78およびIETFドキュメント(http://trustee.ietf.org/license-info)に関連するIETF Trustの法的規定の対象となります。この文書に関するあなたの権利と制限を説明するので、これらの文書を注意深く確認してください。このドキュメントから抽出されたコードコンポーネントには、セクション4.Eで説明されている法的規定のセクション4.Eで説明されており、BSDライセンスに記載されているように保証なしで提供される簡略化されたBSDライセンステキストを含める必要があります。
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としての出版またはそれを英語以外の言語に翻訳するため。
Table of Contents
目次
1. Introduction ....................................................2 2. Conventions Used in This Document ...............................3 3. Sieve Loops: Actions "foreverypart" and "break" .................3 4. Changes to Sieve Tests ..........................................4 4.1. Test "header" ..............................................4 4.2. Test "address" .............................................7 4.3. Test "exists" ..............................................8 5. Action "replace" ................................................8 6. Action "enclose" ...............................................10 7. Action "extracttext" ...........................................11 8. Sieve Capability Strings .......................................11 9. Examples .......................................................12 9.1. Example 1 .................................................12 9.2. Example 2 .................................................12 9.3. Example 3 .................................................13 10. Acknowledgements ..............................................13 11. Security Considerations .......................................14 12. IANA Considerations ...........................................14 12.1. foreverypart capability ..................................15 12.2. mime capability ..........................................15 12.3. replace capability .......................................15 12.4. enclose capability .......................................16 12.5. extracttext capability ...................................16 13. References ....................................................16 13.1. Normative References .....................................16 13.2. Informative References ...................................17
MIME messages ([RFC2045]) are often complex objects, consisting of many parts and sub-parts. This Sieve ([RFC5228]) extension defines mechanisms for performing tests on MIME body parts, looping through the MIME body parts, extracting information from a MIME body part, changing the contents of a MIME body part, and enclosing the entire message within a wrapper.
MIMEメッセージ([RFC2045])は、多くの場合、多くの部品とサブパートで構成される複雑なオブジェクトです。このふるい([RFC5228])拡張は、マイムの身体部分のテストを実行するためのメカニズムを定義し、マイムの身体部分をループし、マイムの身体部分から情報を抽出し、マイムの身体部分の内容を変更し、ラッパー内でメッセージ全体を囲む。
Conventions for notations are as in [RFC5228], Section 1.1.
表記の規則は、[RFC5228]、セクション1.1のようです。
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 [RFC2119].
「必須」、「そうしない」、「必須」、「必要」、「しない」、「そうしない」、「そうではない」、「そうでない」、「推奨」、「5月」、および「オプション」は、[RFC2119]に記載されているように解釈される。
The base Sieve language has no looping mechanism. Given that messages may contain multiple parts, in order to support filters that apply to any and all parts, we introduce a new control command: "foreverypart", which is an iterator that walks though every MIME part of a message, including nested parts, depth first, and applies the commands in the specified block to each of them. The iterator will start with the first MIME part (as its current context) and will execute a command block (Sieve commands enclosed by {...}). Upon completion of this command block, the iterator advances to the next MIME part (as its current context) and executes the same command block again.
基本ふるい言語には、ループメカニズムがありません。メッセージが含まれていることを考えると、すべてのパーツに適用されるフィルターをサポートするために、新しい制御コマンドを導入します。「ForeveryPart」は、ネストされた部品を含むメッセージのすべてのマイム部分を歩く繰り返しです。最初に深さで、指定されたブロックのコマンドをそれぞれに適用します。イテレーターは、最初のMIMEパーツ(現在のコンテキストとして)から始まり、コマンドブロック({...}で囲まれたシーブコマンド)を実行します。このコマンドブロックが完了すると、Iteratorは次のMIMEパーツ(現在のコンテキストとして)に進み、同じコマンドブロックを再度実行します。
The iterator can be terminated prematurely by a new Sieve control command, "break".
イテレーターは、新しいふるいコントロールコマンド「Break」によって時期尚早に終了できます。
Usage: foreverypart [":name" string] block
使用法:ForeveryPart [":name" string]ブロック
Usage: break [":name" string];
"foreverypart" commands can be nested inside other "foreverypart" commands. When this occurs, the nested "foreverypart" iterates over the MIME parts contained within the MIME part currently being targeted by the nearest enclosing "foreverypart" command. (That is, the inner loop only operates on children of the bodypart currently accessed by the outer loop.) If that MIME part is a terminal MIME part (i.e., does not contain other MIME parts), then the nested "foreverypart" loop is simply ignored.
「Forverypart」コマンドは、他の「Forverypart」コマンド内にネストできます。これが発生すると、ネストされた「Forverypart」は、現在最も近い囲まれている「Foreverypart」コマンドによって標的にされているMime部分に含まれるMimeパーツを反復します。(つまり、内側のループは、現在外側のループでアクセスされているボディパートの子供のみで動作します。)そのmime部分が末端のmime部分(つまり、他のmime部分が含まれていない)である場合、ネストされた「foreverpart」ループは単に無視されます。
Sieve implementations MAY limit the number of nested loops that occur within one another; however, they MUST support at least one nested loop inside another loop.
ふるいの実装は、互いに発生するネストされたループの数を制限する場合があります。ただし、別のループ内に少なくとも1つのネストされたループをサポートする必要があります。
If a name is given to a "break" command, it terminates the closest enclosing loop with the identical matching name. (If a nested "foreverypart" name is the same as a "foreverypart" name in an outer level, the outer level name is hidden.) It is an error if there is no enclosing loop with that name.
名前が「break」コマンドに与えられた場合、同一の一致名で最も近い囲まれたループを終了します。(ネストされた「Forverypart」名前が外側のレベルの「Foreverypart」名と同じ場合、外側のレベル名は非表示です。)その名前の囲いループがない場合はエラーです。
If no name is given in a "break" command (i.e., the ":name" parameter is omitted), the break command terminates the closest enclosing loop.
「break」コマンド(つまり、「:名前」パラメーターが省略されている)に名前が付けられていない場合、Breakコマンドは最も近い囲いループを終了します。
This specification extends the base Sieve "header", "address", and "exists" tests to support targeting those tests at a specific MIME part or at all MIME parts in the enclosing scope.
この仕様は、ベースふるい「ヘッダー」、「アドレス」、および「存在する」テストを拡張し、特定のMIME部品または囲みの範囲内のすべてのMIME部品でのテストのターゲティングをサポートします。
The "header" test is extended with the addition of new ":mime" and ":anychild" tagged arguments and their associated options.
「ヘッダー」テストは、新しい「Mime」と「AnyChild」タグ付き引数とそれらに関連するオプションを追加することで拡張されます。
Usage: header [":mime"] [":anychild"] [MIMEOPTS] [COMPARATOR] [MATCH-TYPE] <header-names: string-list> <key-list: string-list>
The definition of [MIMEOPTS] is:
[mimeopts]の定義は次のとおりです。
Syntax: ":type" / ":subtype" / ":contenttype" / ":param" <param-list: string-list>
When the ":mime" tagged argument is present in the "header" test, it will parse the MIME header lines in the message so that tests can be performed on specific elements. The ":anychild" tagged argument may only appear when the ":mime" tagged argument is present, and only modifies the semantics of the ":mime" tagged argument. That is, presence of the ":anychild" in absence of ":mime" is an error.
「:MIME」タグ付けされた引数が「ヘッダー」テストに存在すると、メッセージ内のMIMEヘッダーラインを解析して、特定の要素でテストを実行できるようにします。「:anyChild」タグ付けされた引数は、「:mime」タグ付けされた引数が存在する場合にのみ表示される場合があり、「:mime」タグ付けされた引数のセマンティクスのみを変更します。つまり、「:anyChild」の存在は「:mime」の存在はエラーです。
When used outside the context of a "foreverypart" iterator, and without an ":anychild" tagged argument, the "header" test will examine only the outer top-level [RFC5322] headers of the message.
「Foreverypart」イテレーターのコンテキストの外で使用され、「anyChild」タグ付けされた引数のない場合、「ヘッダー」テストでは、メッセージの外側のトップレベル[RFC5322]ヘッダーのみを調べます。
When used inside the context of a "foreverypart" iterator, and without an ":anychild" tagged argument, the "header" test will examine the headers associated with the current MIME part context from the loop.
「Foreverypart」イテレーターのコンテキスト内で使用され、「anyChild」タグ付けされた引数のない場合、「ヘッダー」テストは、ループからの現在のMIMEパーツコンテキストに関連付けられたヘッダーを調べます。
When used outside the context of a "foreverypart" iterator, and with an ":anychild" tagged argument, the "header" test will examine all MIME body parts and return true if any of them satisfies the test.
「Foreverypart」イテレーターのコンテキストの外で使用され、「anyChild」タグ付けされた引数を使用すると、「ヘッダー」テストはすべてのMIMEボディの部分を調べ、テストを満たしている場合に真実を返します。
When used inside the context of a "foreverypart" iterator, and with an ":anychild" tagged argument, the "header" test will examine the current MIME part context and all its nested MIME body parts, returning true if any of them satisfies the test.
「ForeververyPart」イテレーターのコンテキスト内で使用される場合、および「AnyChild」タグ付けされた引数を使用すると、「ヘッダー」テストは現在のMIMEパーツコンテキストとそのすべてのネストされたMIME体の部分を調べます。テスト。
The "header" test with the ":mime" tagged argument can test various aspects of certain structured MIME headers. Implementations SHOULD support desegmentation, decoding, and charset translation of parameter values encoded according to [RFC2231] as part of this test. Additionally, [RFC2047] describes a process whereby [RFC5322] headers can be encoded in various ways. That encoding is not strictly allowed in MIME parameters; however, in practice, it has been used in many email implementations. So, Sieve implementations MAY decode [RFC2047]-encoded words in parameter values as part of this test.
「:mime」タグ付けされた引数を使用した「ヘッダー」テストは、特定の構造化されたmimeヘッダーのさまざまな側面をテストできます。実装は、このテストの一部として[RFC2231]に従ってエンコードされたパラメーター値の分離、デコード、およびチャーセット変換をサポートする必要があります。さらに、[RFC2047]は、[RFC5322]ヘッダーをさまざまな方法でエンコードできるプロセスを記述します。そのエンコードは、MIMEパラメーターでは厳密に許可されていません。ただし、実際には、多くの電子メールの実装で使用されています。したがって、Siveの実装は、このテストの一部としてパラメーター値にエンコードされた単語をデコードする場合があります。
These options are available:
これらのオプションが利用可能です:
:type for a "Content-Type" MIME header field, parses and tests the value of the MIME type specified in the header; for a "Content-Disposition" MIME header field, parses and tests the value of the disposition specified in the header; for other MIME headers, uses a blank string for the test.
:「コンテンツタイプ」MIMEヘッダーフィールドを入力し、ヘッダーで指定されたMIMEタイプの値を解析およびテストします。「コンテンツ拡張」MIMEヘッダーフィールドの場合、ヘッダーで指定された気質の値を解析およびテストします。他のMIMEヘッダーの場合、テストに空白の文字列を使用します。
:subtype for a "Content-Type" MIME header field, parses and tests the value of the MIME subtype specified in the header; for a "Content-Disposition" MIME header field, uses a blank string for the test; for other MIME headers, uses a blank string for the test.
:「コンテンツタイプ」MIMEヘッダーフィールドのサブタイプ、ヘッダーで指定されたMIMEサブタイプの値を解析およびテストします。「コンテンツディスポジション」MIMEヘッダーフィールドの場合、テストに空白の文字列を使用します。他のMIMEヘッダーの場合、テストに空白の文字列を使用します。
:contenttype for a "Content-Type" MIME header field, parses and tests the combined value of the MIME type and subtype specified in the header; for a "Content-Disposition" MIME header field, behaves the same as the ":type" option; for other MIME headers, uses a blank string for the test.
:「コンテンツタイプ」MIMEヘッダーフィールドのContentType、MIMEタイプの合計値とヘッダーで指定されたサブタイプを解析およびテストします。「コンテンツディスポジション」MIMEヘッダーフィールドの場合、「:タイプ」オプションと同じように動作します。他のMIMEヘッダーの場合、テストに空白の文字列を使用します。
:param parses the header looking for MIME parameters in the header. The supplied string-list lists the names of any parameters to be tested. If any one named parameter value matches any of the test string values, the test will return true.
:Paramは、ヘッダーのMIMEパラメーターを探してヘッダーを解析します。付属の文字列リストには、テストするパラメーターの名前がリストされています。名前付きパラメーター値がテスト文字列値のいずれかと一致する場合、テストはtrueを返します。
When the ":count" option from [RFC5231] is used, the following applies:
[RFC5231]からの「:count」オプションを使用すると、次のものが適用されます。
a. for ":type", ":subtype", or ":contenttype", return a count of the number of headers that parsed successfully
a. for "::type"、 ":subtype"、または "contentType"は、正常に解析したヘッダーの数のカウントを返します
b. for ":param", return a count of the number of parameters with the given name that were found
b. for "::param"、見つかった指定された名前でパラメーターの数の数を返します
Example:
例:
require ["mime", "fileinto"];
["mime"、 "fileinto"]が必要です。
if header :mime :type "Content-Type" "image" { fileinto "INBOX.images"; }
In this example, any message that contains a MIME image type part at the top-level is saved to the mailbox "INBOX.images".
この例では、トップレベルにMIME画像タイプパーツを含むメッセージは、メールボックス「Inbox.images」に保存されます。
Example:
例:
require ["mime", "fileinto"];
["mime"、 "fileinto"]が必要です。
if header :mime :anychild :contenttype "Content-Type" "text/html" { fileinto "INBOX.html"; }
In this example, any message that contains any MIME part with a content-type of "text/html" is saved to the mailbox "INBOX.html".
この例では、コンテンツタイプの「テキスト/HTML」のMIMEパーツを含むメッセージは、メールボックス「Inbox.html」に保存されます。
Example:
例:
require ["mime", "foreverypart", "fileinto"];
["mime"、 "foreverypart"、 "fileinto"]を必要とします。
foreverypart { if allof ( header :mime :param "filename" :contains "Content-Disposition" "important", header :mime :subtype "Content-Type" "pdf", size :over "100K") { fileinto "INBOX.important"; break; } }
In this example, any message that contains a MIME part that has a content-disposition with a filename parameter containing the text "important", has a content-subtype of "pdf" and is bigger than 100 Kb is saved to the mailbox "INBOX.important".
この例では、テキスト「重要」を含むファイル名パラメーターを使用してコンテンツ拡張機能を備えたMIMEパーツを含むメッセージを含むメッセージは、「PDF」のコンテンツサブタイプがあり、100 kBを超えるものが電子メールボックスに保存されます。。重要"。
The "address" test is extended with the addition of new ":mime" and ":anychild" tagged arguments and their associated options.
「アドレス」テストは、新しい「Mime」と「AnyChild」タグ付き引数とそれらに関連するオプションを追加することで拡張されます。
Usage: address [":mime"] [":anychild"] [COMPARATOR] [ADDRESS-PART] [MATCH-TYPE] <header-list: string-list> <key-list: string-list>
When the ":mime" tagged argument is present in the "address" test, it will parse the MIME header lines as if they were standard address header lines in a message so that tests can be performed on specific elements.
「アドレス」テストに「:mime」タグ付けされた引数が存在する場合、特定の要素でテストを実行できるように、メッセージ内の標準アドレスヘッダーラインであるかのようにMIMEヘッダーラインを解析します。
The behavior of the ":anychild" tagged argument and the interaction with the "foreverypart" iterator is the same as for the extended "header" test in Section 4.1.
「:anyChild」の動作と「anyChild」というタグ付けされた引数と「Foreverypart」イテレーターとの相互作用は、セクション4.1の拡張「ヘッダー」テストと同じです。
That is,
あれは、
the use of "address" when both the ":mime" and ":anychild" tagged arguments are omitted is the test defined in [RFC5228], i.e., it will *only* operate on top-level header fields, whether or not it is inside "foreverypart".
「アドレス」の使用「:mime」と「anyChild」タグ付けされた引数が省略されている場合、[RFC5228]で定義されているテストです。つまり、トップレベルのヘッダーフィールドでのみ動作します。「Foreverypart」の中にあります。
the use of "address" with ":mime" and no ":anychild" operates on the current MIME part only (or on the top-level header fields, if outside "foreverypart").
「アドレス」の使用:Mime "and no":anyChild "は現在のMime部分のみで動作します(または「Foreverypart」の外側の場合は、トップレベルのヘッダーフィールドで)。
the use of "address" with ":mime" and ":anychild" operates on the current MIME part and all of its descendants.
「アドレス」を使用して「Mime」と「AnyChild」を使用しているのは、現在のMime部分とそのすべての子孫で動作します。
Example:
例:
require ["mime", "fileinto"];
["mime"、 "fileinto"]が必要です。
if address :mime :is :all "content-from" "tim@example.com" { fileinto "INBOX.part-from-tim"; }
In this example, any message that contains a MIME Content-From header at the top-level matching the text "tim@example.com" is saved to the mailbox "INBOX.part-from-tim".
この例では、「tim@example.com」というテキストに一致するトップレベルのマイムコンテンツヘッダーを含むメッセージは、メールボックス「inbox.part-from-tim」に保存されます。
The "exists" test is extended with the addition of the new ":mime" and ":anychild" tagged arguments and their associated options.
「Exists」テストは、新しい「Mime」と「AnyChild」タグ付けされた引数とそれらに関連するオプションを追加することで拡張されます。
Usage: exists [":mime"] [":anychild"] <header-names: string-list>
When the ":mime" tagged argument is present in the "exists" test, the test is extended to check for the existence of MIME headers in MIME parts.
「:mime」タグ付けされた引数が「存在する」テストに存在する場合、テストは拡張され、mime部品にmimeヘッダーが存在することを確認します。
The behavior of the ":anychild" tagged argument and the interaction with the "foreverypart" iterator is the same as for the extended "header" test Section 4.1.
「:AnyChild」の動作と「ForveryPart」イテレーターとの相互作用は、拡張「ヘッダー」テストセクション4.1と同じです。
That is,
あれは、
the use of "exists" when both the ":mime" and ":anychild" tagged arguments are omitted is the test defined in [RFC5228], i.e., it will *only* operate on top-level header fields, whether or not it is inside "foreverypart".
「:mime」と「anyChild」の両方のタグ付けされた引数が省略されている場合、「存在」の使用は、[RFC5228]で定義されているテストです。つまり、トップレベルのヘッダーフィールドでのみ動作します。「Foreverypart」の中にあります。
the use of "exists" with ":mime" and no ":anychild" operates on the current MIME part only (or on the top-level header fields, if outside "foreverypart").
「存在」の使用:mime "and no":anychild "は現在のMime部分のみで動作します(または、「Foreverypart」の外側の場合は、トップレベルのヘッダーフィールドで)。
the use of "exists" with ":mime" and ":anychild" operates on the current MIME part and all of its descendants.
「存在」を「存在する」:mime "and":anychild "は、現在のMime部分とそのすべての子孫で動作します。
Example:
例:
require ["mime", "fileinto"];
["mime"、 "fileinto"]が必要です。
if exists :mime :anychild "content-md5" { fileinto "INBOX.md5"; }
In this example, any message that contains a MIME Content-MD5 header in any MIME part is saved to the mailbox "INBOX.md5".
この例では、MIMEパーツにMIME Content-MD5ヘッダーを含むメッセージは、メールボックス「inbox.md5」に保存されます。
Usage: replace [":mime"] [":subject" string] [":from" string] <replacement: string>
The "replace" command is defined to allow a MIME part to be replaced with the text supplied in the command.
「交換」コマンドは、MIME部品をコマンドに提供されたテキストに置き換えることを許可するために定義されます。
When used in the context of a "foreverypart" iterator, the MIME part to be replaced is the "current" MIME part. If the current MIME context is a multipart MIME part, the entire multipart MIME part is replaced, which would alter the MIME structure of the message by eliminating all of the children of the multipart part. (Replacing a non-multipart MIME part within a "foreverypart" loop context does not alter the overall message structure.) If the MIME structure is altered, the change takes effect immediately: the "foreverypart" iterator that is executing does not go into the no-longer existing body parts, and subsequent "foreverypart" iterators would use the new message structure.
「Fourverypart」イテレーターのコンテキストで使用される場合、交換されるMIME部分は「現在」のMIMEパーツです。現在のMIMEコンテキストがマルチパートMIMEパーツである場合、マルチパートMIMEパーツ全体が置き換えられ、マルチパート部品のすべての子供を排除することでメッセージのMIME構造が変更されます。(「ForeververyPart」ループコンテキスト内の非マルチパートMIMEパーツを置き換えると、メッセージ構造全体が変更されません。)MIME構造が変更された場合、変更はすぐに有効になります。ロンガーなしの既存の身体部分、およびそれに続く「Forverypart」イテレーターは、新しいメッセージ構造を使用します。
When used outside the context of a "foreverypart" loop, the MIME part to be replaced is the entire message.
「Fourverypart」ループのコンテキストの外で使用する場合、交換するMIMEパーツはメッセージ全体です。
If the ":mime" parameter is not specified, the replacement string is a text/plain part in UTF-8 [RFC3629].
「:MIME」パラメーターが指定されていない場合、交換文字列はUTF-8 [RFC3629]のテキスト/プレーン部分です。
If the ":mime" parameter is specified, then the replacement string is, in fact, a MIME entity as defined in [RFC2045], Section 2.4, including both MIME headers and content.
「:MIME」パラメーターが指定されている場合、交換文字列は、実際には、[RFC2045]で定義されているMIMEエンティティ、MIMEヘッダーとコンテンツの両方を含むセクション2.4です。
If the entire message is being replaced, the optional ":subject" parameter specifies a subject line to attach to the message that is generated. UTF-8 characters can be used in the string argument; implementations MUST convert the string to [RFC2047]-encoded words if and only if non-ASCII characters are present. If the ":subject" parameter is used, implementations MUST preserve any previous Subject header as an Original-Subject header. Implementations MUST preserve all other header fields from the original message with the exception of those relating to the MIME structure that is being replaced.
メッセージ全体が交換されている場合、オプションの「:件名」パラメーターは、生成されたメッセージに添付する件名を指定します。UTF-8文字は、文字列引数で使用できます。実装は、文字列を[RFC2047]に変換する必要があります。非ASCII文字が存在する場合にのみ、エンコードされた単語が必要です。「:件名」パラメーターが使用される場合、実装は以前のサブジェクトヘッダーを元の被験者ヘッダーとして保持する必要があります。実装は、交換されているMIME構造に関連するものを除き、元のメッセージから他のすべてのヘッダーフィールドを保存する必要があります。
If the entire message is being replaced, as an indication that the message is no longer as created by the original author of the message, the optional ":from" parameter may be used to specify an alternate address to use in the From field of the message that is generated. The string must specify a valid [RFC5322] mailbox-list. Implementations SHOULD check the syntax and generate an error when a syntactically invalid ":from" parameter is specified. Implementations MAY also impose restrictions on what addresses can be specified in a ":from" parameter; it is suggested that values that fail such a validity check simply be ignored rather than causing the "replace" action to fail. If the From header is changed, implementations MUST preserve the previous From header as an Original-From header.
メッセージがメッセージの元の著者によって作成されなくなったことを示すように、メッセージ全体が置き換えられている場合、オプション ":from"パラメーターを使用して、そのフィールドのフィールドで使用する代替アドレスを指定することができます。生成されるメッセージ。文字列は、有効な[RFC5322]メールボックスリストを指定する必要があります。実装は、構文をチェックし、構文的に無効な場合にエラーを生成する必要があります。また、実装は、「:from」パラメーターで指定できるアドレスに制限を課す場合があります。そのような妥当性チェックを失敗させる値は、「置換」アクションを失敗させるのではなく、単に無視されることが示唆されています。From Headerが変更された場合、実装は以前のヘッダーから元のヘッダーとして保存する必要があります。
Implementations that support the "editheader" extension [RFC5293] MUST ensure that any Original-Subject or Original-From headers added by the system cannot be modified or removed. Implementations MAY prevent the addition of Original-Subject and Orignal-From headers via the "editheader" extension.
「editheader」拡張機能[RFC5293]をサポートする実装は、システムによって追加された元のサブジェクトまたは元のヘッダーを変更または削除できないことを確認する必要があります。実装により、「editheader」拡張機能を介して元の被験者とオリグルからヘッダーの追加が妨げられる場合があります。
If ":mime" is specified and either ":subject" or ":from" is specified, the ":subject:" or ":from" parameter MUST be ignored. This SHOULD be flagged as a compilation error.
":mime"が指定され、 ":subject"または "from"が指定されている場合、 ":subject:"または "from"パラメーターは無視する必要があります。これは、コンパイルエラーとしてフラグを立てる必要があります。
Usage: enclose <:subject string> <:headers string-list> string
A new Sieve action command is defined to allow an entire message to be enclosed as an attachment to a new message. After enclosure, subsequent actions affecting the message header or content, as well as tests operating on the MIME structure or accessing MIME header fields, use the newly created message instead of the original message; this means that any use of a "replace" action or other similar actions should be executed before the "enclose" action.
新しいメッセージの添付ファイルとしてメッセージ全体を囲むことを可能にするために、新しいSieveアクションコマンドが定義されています。エンクロージャーの後、メッセージヘッダーまたはコンテンツに影響を与える後続のアクション、およびMIME構造で動作したり、MIMEヘッダーフィールドにアクセスしたりするテストは、元のメッセージの代わりに新しく作成されたメッセージを使用します。これは、「囲む」アクションの前に、「交換」アクションまたは他の同様のアクションの使用を実行する必要があることを意味します。
If multiple "enclose" actions are executed by a script, the message is enclosed multiple times. (If a Sieve script desires to choose between different enclosures, or wants to delay the enclosure to the end of the script, it can use variables with appropriate tests [RFC5229].)
複数の「囲む」アクションがスクリプトによって実行される場合、メッセージは複数回囲まれます。(シーブスクリプトが異なるエンクロージャーを選択したい場合、またはスクリプトの最後までエンクロージャーを遅らせたい場合、適切なテストで変数を使用できます[RFC5229]。)
This action does not affect messages that are forwarded via a "redirect" action.
このアクションは、「リダイレクト」アクションを介して転送されるメッセージには影響しません。
Specifically, the original message becomes a multipart/mixed message with two parts: a text/plain portion with the string argument as its body, and a message/rfc822 portion with the original message enclosed. The Content-Type: header field becomes multipart/mixed. The optional Subject: header is specified by the ":subject" argument; if not present, the subject will be taken from the enclosed message. Any headers specified by ":headers" are copied from the old message into the new message. If not specified by ":headers", Date: and From: headers should be synthesized to reflect the current date and the user running the Sieve action.
具体的には、元のメッセージは、2つの部分を持つマルチパート/混合メッセージになります。文字列引数を本文として持つテキスト/プレーン部分と、元のメッセージが囲まれたメッセージ/RFC822部分です。コンテンツタイプ:ヘッダーフィールドはMultiPart/Mixedになります。オプションの件名:ヘッダーは「:件名」引数によって指定されます。存在しない場合、被験者は囲まれたメッセージから取得されます。「:ヘッダー」で指定されたヘッダーは、古いメッセージから新しいメッセージにコピーされます。":headers"で指定されていない場合、日付:およびfrom:ヘッダーは、現在の日付とユーザーがふるいアクションを実行していることを反映するために合成する必要があります。
Usage: extracttext [MODIFIER] [":first" number] <varname: string>
The "extracttext" action may be used within the context of a "foreverypart" loop and is used to store text into a variable as defined by [RFC5229]. Servers MUST support transcoding of any textual body part into UTF-8 for use with this action. This requires decoding any transfer encoding as well as transcoding from the indicated character set into UTF-8. It stores at most ":first" characters of the transcoded content of the current MIME body part in the variable identified by varname. If the ":first" parameter is not present, the whole content of the current MIME body part is stored. In either case, the actually stored data MAY be truncated to conform to implementation specific limit on variable length and/or on MIME body part length. If the transfer encoding or character set is unrecognized by the implementation or recognized but invalid, an empty string will result.
「抽出」アクションは、「Foreverypart」ループのコンテキスト内で使用され、[RFC5229]で定義された変数にテキストを保存するために使用できます。サーバーは、このアクションで使用するために、テキストボディパーツのUTF-8へのトランスコーディングをサポートする必要があります。これには、指定された文字セットからUTF-8へのトランスコーディングと同様に、転送エンコードを解読する必要があります。varnameで識別された変数の現在のmimeボディパーツのトランスコードされたコンテンツの「:最初の」文字をせいぜい「:最初の」文字を保存します。「:最初の」パラメーターが存在しない場合、現在のMIMEボディパーツのコンテンツ全体が保存されます。どちらの場合でも、実際に保存されたデータは、変数の長さおよび/またはMIMEボディパーツの長さの実装固有の制限に適合するように切り捨てられる場合があります。転送エンコーディングまたは文字セットが実装によって認識されない場合、または認識されていないが無効な場合、空の文字列が生じます。
If "extracttext" is used outside the context of a "foreverypart" loop, the action will set the variable identified by varname to the empty string. This SHOULD be flagged as a compilation error.
「ExtractText」が「Fourverypart」ループのコンテキストの外で使用される場合、アクションはVarnameで識別された変数を空の文字列に設定します。これは、コンパイルエラーとしてフラグを立てる必要があります。
Modifiers are applied on the extracted text before it is stored in the variable.
変数に保存される前に、修飾子は抽出されたテキストに適用されます。
A Sieve implementation that defines the "foreverypart" and "break" actions will advertise the capability string "foreverypart".
「Fourverypart」と「Break」アクションを定義するSiveの実装により、機能文字列「Forverypart」が宣伝されます。
A Sieve implementation that defines the ":mime" and ":anychild" tagged arguments to the "header", "address", and "exists" commands will advertise the capability string "mime".
「:mime」と「anyChild "タグ付けされた引数を「ヘッダー」、「アドレス」、および「存在」コマンドを定義するふるいの実装は、能力文字列「mime」を宣伝します。
A Sieve implementation that defines the "replace" action will advertise the capability string "replace".
「置き換え」アクションを定義するふるいの実装は、「置き換え」の機能を宣伝します。
A Sieve implementation that defines the "enclose" action will advertise the capability string "enclose".
「囲まれた」アクションを定義するふるいの実装は、「囲まれた「囲まれた」機能を宣伝します。
A Sieve implementation that defines the "extracttext" action will advertise the capability string "extracttext". Note that to be useful, the "extracttext" action also requires the "variables" [RFC5229] and "foreverypart" capabilities.
「抽出テキスト」アクションを定義するふるいの実装は、機能文字列「抽出テキスト」を宣伝します。役立つためには、「抽出」アクションには「変数」[RFC5229]および「Foreverypart」機能も必要です。
Consider a Sieve script to replace some of the Windows executable attachments in a message. (The actual list of executable types and extensions is considerably longer and constantly changing. The tests shown here are an example only.) Such a script might look like this:
メッセージ内のWindows実行可能ファイル添付ファイルの一部を置き換えるためのふるいスクリプトを検討してください。(実行可能なタイプと拡張機能の実際のリストはかなり長く、常に変化しています。ここに示すテストは例です。)そのようなスクリプトは次のようになるかもしれません。
require [ "foreverypart", "mime", "replace" ]; foreverypart { if anyof ( header :mime :contenttype :is "Content-Type" "application/exe", header :mime :param "filename" :matches ["Content-Type", "Content-Disposition"] "*.com" ) { replace "Executable attachment removed by user filter"; } }
Consider a Sieve script to warn the user about some of the executable attachment types. (The actual list of executable types and extensions is considerably longer and constantly changing. The tests shown here are an example only.) Such a script might look like this:
使用可能な添付ファイルのいくつかについてユーザーに警告するためのふるいスクリプトを検討してください。(実行可能なタイプと拡張機能の実際のリストはかなり長く、常に変化しています。ここに示すテストは例です。)そのようなスクリプトは次のようになるかもしれません。
require [ "foreverypart", "mime", "enclose" ];
[foreverypart "、" mime "、" close "]が必要です。
foreverypart { if header :mime :param "filename" :matches ["Content-Type", "Content-Disposition"] ["*.com", "*.exe", "*.vbs", "*.scr", "*.pif", "*.hta", "*.bat", "*.zip" ] { # these attachment types are executable enclose :subject "Warning" :text WARNING! The enclosed message contains executable attachments. These attachment types may contain a computer virus program that can infect your computer and potentially damage your data.
Before clicking on these message attachments, you should verify with the sender that this message was sent by them and not a computer virus.
これらのメッセージ添付ファイルをクリックする前に、コンピューターウイルスではなく、このメッセージがそれらによって送信されたことを送信者に確認する必要があります。
. ; break; } }
A Sieve script to extract subject and text out of messages from the boss might look like this:
上司からのメッセージから主題とテキストを抽出するためのふるいスクリプトは、次のようになるかもしれません。
require ["mime", "variables", "extracttext"];
["mime"、 "変数"、 "extracttext"]を必要とします。
if header :contains "from" "boss@example.org" { # :matches is used to get the value of the Subject header if header :matches "Subject" "*" { set "subject" "${1}"; }
# extract the first 100 characters of the first text/* part foreverypart { if header :mime :type :is "Content-Type" "text" { extracttext :first 100 "msgcontent"; break; } }
# if it's not a 'for your information' message if not header :contains "subject" "FYI:" { # do something using ${subject} and ${msgcontent} # such as sending a notification using a # notification extension } }
Comments from members of the MTA Filters Working Group, in particular Ned Freed, Kjetil Torgrim Homme, Mark Mallett, Alexey Melnikov, Aaron Stone, and Nigel Swinson are gratefully acknowledged.
MTAフィルターワーキンググループのメンバー、特にネッドフリード、ケティルトーグリムホム、マークマレット、アレクセイメルニコフ、アーロンストーン、ナイジェルスウィンソンからのコメントは感謝されています。
The "enclose" action creates an entirely new message, as compared to just redirecting or forwarding the existing message. Therefore, any site policies applicable to message submission should be enforced.
「囲む」アクションは、既存のメッセージをリダイレクトまたは転送するだけで、まったく新しいメッセージを作成します。したがって、メッセージの送信に適用されるサイトポリシーを実施する必要があります。
The looping specification specified here provides easier access to information about the message contents, which may also be achieved through other sieve tests. This is not believed to raise any additional security issues beyond those for the Sieve "envelope" and "body" [RFC5173] tests.
ここで指定されているループ仕様は、メッセージコンテンツに関する情報へのアクセスを簡単に提供します。これは、他のふるいテストでも達成できます。これは、ふるいの「エンベロープ」および「ボディ」[RFC5173]テストのものを超えた追加のセキュリティ問題を提起するとは考えられていません。
Any change in message content may interfere with digital signature mechanisms that include that content in the signed material. In particular, using "replace" makes direct changes to the body content and will affect the body hash included in Domain Keys Identified Mail (DKIM) signatures [RFC4871], or the message signature used for Secure MIME (S/MIME) [RFC3851], Pretty Good Privacy (PGP) [RFC1991] or OpenPGP [RFC4880].
メッセージコンテンツの変更は、署名された資料のコンテンツを含むデジタル署名メカニズムを妨げる可能性があります。特に、「置換」を使用すると、ボディの内容が直接変更され、ドメインキー識別付きメール(DKIM)署名[RFC4871]、または安全なMIME(S/MIME)[RFC3851]に使用されるメッセージ署名が含まれます。、かなり良いプライバシー(PGP)[RFC1991]またはOpenPGP [RFC4880]。
It is not possible to examine the MIME structure of decrypted content in a multipart/encrypted MIME part.
マルチパート/暗号化されたMIMEパーツで、復号化されたコンテンツのMIME構造を調べることはできません。
When "enclose" is used on a message containing a multipart/signed MIME part, the Sieve implementation MUST ensure that the original message is copied octet-for-octet to maintain the validity of the digital signature.
「Enclose」がMultiPart/署名されたMIMEパーツを含むメッセージで使用される場合、Sieveの実装は、デジタル署名の有効性を維持するために、元のメッセージがOctet-for-octetにコピーされるようにする必要があります。
The system MUST be sized and restricted in such a manner that even malicious use of MIME part matching does not deny service to other users of the host system.
システムは、MIMEパーツマッチングの悪意のある使用でさえ、ホストシステムの他のユーザーへのサービスを拒否しないようにサイズを整え、制限する必要があります。
All of the security considerations given in the base Sieve specification also apply to these extensions.
ベースふるいの仕様に記載されているセキュリティの考慮事項はすべて、これらの拡張機能にも適用されます。
The Original-Subject and Original-From headers have been registered in the Permanent Message Header Fields registry.
元のサブジェクトとオリジナルのヘッダーは、永続的なメッセージヘッダーフィールドレジストリに登録されています。
The following templates specify the IANA registrations of the Sieve extensions specified in this document. This information has been added to the IANA registry of Sieve Extensions (currently found at http://www.iana.org).
次のテンプレートでは、このドキュメントで指定されたシーブ拡張機能のIANA登録を指定します。この情報は、Sieve ExtensionsのIANAレジストリに追加されています(現在http://www.iana.orgにあります)。
To: iana@iana.org Subject: Registration of new Sieve extension
宛先:iana@iana.org件名:新しいふるい延長の登録
Capability name: foreverypart Description: adds the "foreverypart" and "break" actions for iterating through MIME parts of a message.
機能名:ForeveryPart説明:メッセージのMime部分を繰り返すために「Foreverypart」および「Break」アクションを追加します。
RFC number: RFC 5703 Contact address: The Sieve discussion list <ietf-mta-filters@imc.org>.
RFC番号:RFC 5703連絡先住所:SIVEディスカッションリスト<IETF-MTA-filters@imc.org>。
To: iana@iana.org Subject: Registration of new Sieve extension
宛先:iana@iana.org件名:新しいふるい延長の登録
Capability name: mime Description: adds the ":mime" and ":anychild" tagged arguments to the "header", "address", and "exists" tests. Adds the ":type", ":subtype", ":contenttype", and ":param" options when ":mime" is used with the "header" test.
機能名:MIME説明:「:Mime」と「AnyChild」タグ付けされた引数を「ヘッダー」、「アドレス」、「存在」テストに追加します。「:type」、 ":subtype"、 ":contentType"、および「param」オプションを追加します。
RFC number: RFC 5703 Contact address: The Sieve discussion list <ietf-mta-filters@imc.org>.
RFC番号:RFC 5703連絡先住所:SIVEディスカッションリスト<IETF-MTA-filters@imc.org>。
To: iana@iana.org Subject: Registration of new Sieve extension
宛先:iana@iana.org件名:新しいふるい延長の登録
Capability name: replace Description: adds the "replace" action for replacing a MIME body part of a message.
能力名:置換説明:メッセージのmimeボディ部分を置き換えるための「置換」アクションを追加します。
RFC number: RFC 5703 Contact address: The Sieve discussion list <ietf-mta-filters@imc.org>.
RFC番号:RFC 5703連絡先住所:SIVEディスカッションリスト<IETF-MTA-filters@imc.org>。
To: iana@iana.org Subject: Registration of new Sieve extension
宛先:iana@iana.org件名:新しいふるい延長の登録
Capability name: enclose Description: adds the "enclose" action for enclosing a message with a wrapper.
機能名:囲まれた説明:ラッパーでメッセージを囲むための「囲い」アクションを追加します。
RFC number: RFC 5703 Contact address: The Sieve discussion list <ietf-mta-filters@imc.org>.
RFC番号:RFC 5703連絡先住所:SIVEディスカッションリスト<IETF-MTA-filters@imc.org>。
To: iana@iana.org Subject: Registration of new Sieve extension
宛先:iana@iana.org件名:新しいふるい延長の登録
Capability name: extracttext Description: adds the "extracttext" action for extracting text from a
機能名:抽出テキスト説明:テキストを抽出するための「抽出」アクションを追加します
MIME body part.
マイムボディパーツ。
RFC number: RFC 5703 Contact address: The Sieve discussion list <ietf-mta-filters@imc.org>.
RFC番号:RFC 5703連絡先住所:SIVEディスカッションリスト<IETF-MTA-filters@imc.org>。
[RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, November 1996.
[RFC2045] Freed、N。およびN. Borenstein、「多目的インターネットメールエクステンション(MIME)パート1:インターネットメッセージボディの形式」、RFC 2045、1996年11月。
[RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text", RFC 2047, November 1996.
[RFC2047]ムーア、K。、「MIME(多目的インターネットメールエクステンション)パート3:ASCII以外のテキスト用のメッセージヘッダー拡張機能」、RFC 2047、1996年11月。
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2119] Bradner、S。、「要件レベルを示すためにRFCで使用するためのキーワード」、BCP 14、RFC 2119、1997年3月。
[RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and Encoded Word Extensions: Character Sets, Languages, and Continuations", RFC 2231, November 1997.
[RFC2231] Freed、N。およびK. Moore、「MIMEパラメーター値とエンコードされた単語拡張機能:文字セット、言語、継続」、RFC 2231、1997年11月。
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO 10646", STD 63, RFC 3629, November 2003.
[RFC3629] Yergeau、F。、「UTF-8、ISO 10646の変換形式」、STD 63、RFC 3629、2003年11月。
[RFC5173] Degener, J. and P. Guenther, "Sieve Email Filtering: Body Extension", RFC 5173, April 2008.
[RFC5173] Degener、J。およびP. Guenther、「Sieve Emailフィルタリング:ボディエクステンション」、RFC 5173、2008年4月。
[RFC5228] Guenther, P. and T. Showalter, "Sieve: An Email Filtering Language", RFC 5228, January 2008.
[RFC5228] Guenther、P。およびT. Showalter、「Sieve:An Email Filtering Language」、RFC 5228、2008年1月。
[RFC5229] Homme, K., "Sieve Email Filtering: Variables Extension", RFC 5229, January 2008.
[RFC5229] Homme、K。、「Sieve Emailフィルタリング:変数拡張」、RFC 5229、2008年1月。
[RFC5231] Segmuller, W. and B. Leiba, "Sieve Email Filtering: Relational Extension", RFC 5231, January 2008.
[RFC5231] Segmuller、W。およびB. Leiba、「Sieve Emailフィルタリング:リレーショナルエクステンション」、RFC 5231、2008年1月。
[RFC5293] Degener, J. and P. Guenther, "Sieve Email Filtering: Editheader Extension", RFC 5293, August 2008.
[RFC5293] Degener、J。およびP. Guenther、「Sieve Emailフィルタリング:Editheader Extension」、RFC 5293、2008年8月。
[RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322, October 2008.
[RFC5322] Resnick、P.、ed。、「インターネットメッセージ形式」、RFC 5322、2008年10月。
[RFC1991] Atkins, D., Stallings, W., and P. Zimmermann, "PGP Message Exchange Formats", RFC 1991, August 1996.
[RFC1991] Atkins、D.、Stallings、W。、およびP. Zimmermann、「PGPメッセージ交換形式」、RFC 1991、1996年8月。
[RFC3851] Ramsdell, B., "Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.1 Message Specification", RFC 3851, July 2004.
[RFC3851] Ramsdell、B。、「Secure/Multipurpose Internet Mail Extensions(S/MIME)バージョン3.1メッセージ仕様」、RFC 3851、2004年7月。
[RFC4871] Allman, E., Callas, J., Delany, M., Libbey, M., Fenton, J., and M. Thomas, "DomainKeys Identified Mail (DKIM) Signatures", RFC 4871, May 2007.
[RFC4871] Allman、E.、Callas、J.、Delany、M.、Libbey、M.、Fenton、J。、およびM. Thomas、「Domainkeys Idified Mail(DKIM)署名」、RFC 4871、2007年5月。
[RFC4880] Callas, J., Donnerhacke, L., Finney, H., Shaw, D., and R. Thayer, "OpenPGP Message Format", RFC 4880, November 2007.
[RFC4880] Callas、J.、Donnerhacke、L.、Finney、H.、Shaw、D。、およびR. Thayer、「OpenPGPメッセージ形式」、RFC 4880、2007年11月。
Authors' Addresses
著者のアドレス
Tony Hansen AT&T Laboratories 200 Laurel Ave. Middletown, NJ 07748 USA
トニーハンセンAT&Tラボラトリーズ200ローレルアベニュー、ミドルタウン、ニュージャージー07748 USA
EMail: tony+sieveloop@maillennium.att.com
Cyrus Daboo Apple Inc. 1 Infinite Loop Cupertino, CA 95014 USA
Cyrus Daboo Apple Inc. 1 Infinite Loop Cupertino、CA 95014 USA
EMail: cyrus@daboo.name URI: http://www.apple.com/