Network Working Group                                           C. Daboo
Request for Comments: 5235                                  January 2008
Obsoletes: 3685
Category: Standards Track
        
Network Working Group                                           C. Daboo
Request for Comments: 5235                                  January 2008
Obsoletes: 3685
Category: Standards Track
        

Sieve Email Filtering: Spamtest and Virustest Extensions

筛选电子邮件过滤:Spamtest和Virustest扩展

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)。本备忘录的分发不受限制。

Abstract

摘要

The Sieve email filtering language "spamtest", "spamtestplus", and "virustest" extensions permit users to use simple, portable commands for spam and virus tests on email messages. Each extension provides a new test using matches against numeric "scores". It is the responsibility of the underlying Sieve implementation to do the actual checks that result in proper input to the tests.

Sieve电子邮件过滤语言“spamtest”、“spamtestplus”和“virustest”扩展允许用户使用简单、可移植的命令对电子邮件进行垃圾邮件和病毒测试。每个扩展都提供了一个新的测试,使用与数字“分数”的匹配。底层筛子实现负责进行实际检查,从而为测试提供正确的输入。

Table of Contents

目录

   1. Introduction and Overview .......................................2
   2. Conventions Used in This Document ...............................2
   3. Sieve Extensions ................................................3
      3.1. General Considerations .....................................3
      3.2. Test spamtest ..............................................3
           3.2.1. spamtest without :percent Argument ..................4
           3.2.2. spamtest with :percent Argument .....................5
      3.3. Test virustest .............................................7
   4. Security Considerations .........................................9
   5. IANA Considerations .............................................9
      5.1. spamtest Registration ......................................9
      5.2. virustest Registration ....................................10
      5.3. spamtestplus Registration .................................10
   6. References .....................................................10
      6.1. Normative References ......................................10
      6.2. Informative References ....................................11
   Appendix A. Acknowledgments .......................................12
   Appendix B. Important Changes since RFC 3685 ......................12
        
   1. Introduction and Overview .......................................2
   2. Conventions Used in This Document ...............................2
   3. Sieve Extensions ................................................3
      3.1. General Considerations .....................................3
      3.2. Test spamtest ..............................................3
           3.2.1. spamtest without :percent Argument ..................4
           3.2.2. spamtest with :percent Argument .....................5
      3.3. Test virustest .............................................7
   4. Security Considerations .........................................9
   5. IANA Considerations .............................................9
      5.1. spamtest Registration ......................................9
      5.2. virustest Registration ....................................10
      5.3. spamtestplus Registration .................................10
   6. References .....................................................10
      6.1. Normative References ......................................10
      6.2. Informative References ....................................11
   Appendix A. Acknowledgments .......................................12
   Appendix B. Important Changes since RFC 3685 ......................12
        
1. Introduction and Overview
1. 导言和概述

Sieve scripts are frequently being used to do spam and virus filtering either based on implicit script tests (e.g., tests for "black-listed" senders directly encoded in the Sieve script), or via testing messages modified by some external spam or virus checker that handled the message prior to Sieve. The use of third-party spam and virus checker tools poses a problem since each tool has its own way of indicating the result of its checks. These usually take the form of a header added to the message, the content of which indicates the status using some syntax defined by the particular tool. Each user has to then create their own Sieve scripts to match the contents of these headers to do filtering. This requires the script to stay in synchronization with the third-party tool as it gets updated or perhaps replaced with another. Thus, scripts become tied to specific environments and lose portability.

Sieve脚本经常被用来进行垃圾邮件和病毒过滤,或者基于隐式脚本测试(例如,对直接编码在Sieve脚本中的“黑名单”发件人的测试),或者通过测试一些在Sieve之前处理邮件的外部垃圾邮件或病毒检查器修改的邮件。使用第三方垃圾邮件和病毒检查工具会带来一个问题,因为每个工具都有自己的方式来指示其检查结果。它们通常采用添加到消息中的头的形式,头的内容使用特定工具定义的某些语法指示状态。然后,每个用户都必须创建自己的筛选脚本,以匹配这些标题的内容来进行筛选。这要求脚本在更新或可能被另一个工具替换时与第三方工具保持同步。因此,脚本与特定环境绑定,并失去可移植性。

The purpose of this document is to introduce two Sieve tests that can be used to implement "generic" tests for spam and viruses in messages processed via Sieve scripts. The spam and virus checks themselves are handled by the underlying Sieve implementation in whatever manner is appropriate, so that the Sieve spam and virus test commands can be used in a portable way.

本文档的目的是介绍两种筛选测试,可用于对通过筛选脚本处理的邮件中的垃圾邮件和病毒实施“通用”测试。垃圾邮件和病毒检查本身由底层的Sieve实现以任何适当的方式处理,因此Sieve垃圾邮件和病毒测试命令可以以可移植的方式使用。

In order to do numeric comparisons against the returned strings, server implementations MUST also support the Sieve relational [RFC5231] extension, in addition to the extensions described here. All examples below assume the relational extension is present.

为了对返回的字符串进行数字比较,除了这里描述的扩展之外,服务器实现还必须支持Sieve relational[RFC5231]扩展。下面的所有示例都假定存在关系扩展。

2. Conventions Used in This Document
2. 本文件中使用的公约

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

本文件中的关键词“必须”、“不得”、“必需”、“应”、“不应”、“应”、“不应”、“建议”、“可”和“可选”应按照[RFC2119]中所述进行解释。

The term "spam" is used in this document to refer to unsolicited or unwanted email messages. This document does not attempt to define what exactly constitutes spam, or how it should be identified, or what actions should be taken when detected.

本文档中的术语“垃圾邮件”指未经请求或不需要的电子邮件。本文档不试图定义垃圾邮件的确切构成,也不试图定义应如何识别垃圾邮件,或者在检测到垃圾邮件时应采取的措施。

The term "virus" is used in this document to refer to any type of message whose content can cause malicious damage. This document does not attempt to define what exactly constitutes a virus, or how it should be identified, or what actions should be taken when detected.

本文档中使用的术语“病毒”是指其内容可能造成恶意损害的任何类型的邮件。本文档不试图定义病毒的确切构成,或如何识别病毒,或在检测到病毒时应采取的措施。

3. Sieve Extensions
3. 筛孔延伸
3.1. General Considerations
3.1. 一般考虑

The "spamtest" and "virustest" tests described below evaluate the results of implementation-specific spam and virus checks in a portable way. The implementation may, for example, check for third-party spam tool headers and determine how those map into the way the test commands are used. To do this, the underlying Sieve implementation provides a normalized result string as one of the inputs to each test command. The normalized result string is considered to be the value on the left-hand side of the test, and the comparison values given in the test command are considered to be on the right-hand side.

下面描述的“垃圾邮件测试”和“病毒测试”以可移植的方式评估特定于实现的垃圾邮件和病毒检查的结果。例如,该实现可以检查第三方垃圾邮件工具头,并确定这些工具头如何映射到测试命令的使用方式中。为此,底层的Sieve实现提供一个规范化的结果字符串作为每个测试命令的输入之一。标准化结果字符串被视为测试左侧的值,测试命令中给出的比较值被视为右侧的值。

The normalized result starts with a digit string, with its numeric value within the range of values used by the specific test, indicating the severity of spam or viruses in a message or whether any tests were done at all. This may optionally be followed by a space (%x20) character and arbitrary text, or in one specific case a single keyword is returned. The numeric value can be compared to specific values using the Sieve relational [RFC5231] extension in conjunction with the "i;ascii-numeric" comparator [RFC4790], which will test for the presence of a numeric value at the start of the string, ignoring any additional text in the string. The optional text can be used to carry implementation-specific details about the tests and descriptive comments about the result. Tests can be done using standard string comparators against this text if it helps to refine behavior; however, this will break portability of the script as the text will likely be specific to a particular implementation.

标准化结果以数字字符串开始,其数值在特定测试使用的值范围内,指示消息中垃圾邮件或病毒的严重性,或者是否进行了任何测试。可以选择后跟空格(%x20)字符和任意文本,或者在特定情况下返回单个关键字。可使用筛网关系[RFC5231]扩展和“i;ascii数字”比较器[RFC4790]将数值与特定值进行比较,该比较器将测试字符串开头是否存在数值,忽略字符串中的任何其他文本。可选文本可用于承载有关测试的特定于实现的详细信息以及有关结果的描述性注释。如果有助于改进行为,可以使用标准字符串比较器对该文本进行测试;然而,这将破坏脚本的可移植性,因为文本可能特定于特定的实现。

In addition, the Sieve relational [RFC5231] ":count" match type can be used to determine if the underlying implementation actually did a test. If the underlying spam or virus test was done, the ":count" of the normalized result will return the numeric value "1", whilst if the test was not done, or the Sieve implementation could not determine if a test was done or not done, the ":count" value will be "0" (zero).

此外,筛关系[RFC5231]“:count”匹配类型可用于确定底层实现是否实际执行了测试。如果底层垃圾邮件或病毒测试已完成,则标准化结果的“:count”将返回数值“1”,而如果测试未完成,或筛选实现无法确定测试是否已完成,则“:count”值将为“0”(零)。

3.2. Test spamtest
3.2. 测试spamtest
           Usage:    spamtest [":percent"] [COMPARATOR] [MATCH-TYPE]
                     <value: string>
        
           Usage:    spamtest [":percent"] [COMPARATOR] [MATCH-TYPE]
                     <value: string>
        

Sieve implementations that implement the "spamtest" test use an identifier of either "spamtest" or "spamtestplus" for use with the capability mechanism.

实现“spamtest”测试的筛选实现使用“spamtest”或“spamtestplus”的标识符与功能机制一起使用。

If the ":percent" argument is not used with any spamtest test, then one or both of "spamtest" or "spamtestplus" capability identifiers MUST be present.

如果“:percent”参数未用于任何spamtest测试,则必须存在一个或两个“spamtest”或“spamtestplus”功能标识符。

If the ":percent" argument is used with any spamtest test, then the "spamtestplus" capability identifier MUST be present. Sieve implementations MUST return an error if the ":percent" argument is used and "spamtestplus" is not specified.

如果“:percent”参数用于任何spamtest测试,则必须存在“spamtestplus”功能标识符。如果使用“:percent”参数且未指定“spamtestplus”,则筛实现必须返回错误。

In the interests of brevity and clarity, scripts SHOULD NOT specify both "spamtestplus" and "spamtest" capability identifiers together.

为了简洁明了,脚本不应同时指定“spamtestplus”和“spamtest”功能标识符。

The "spamtest" test evaluates to true if the normalized spamtest result matches the value. The type of match is specified by the optional match argument, which defaults to ":is" if not specified.

如果规范化的spamtest结果与值匹配,“spamtest”测试计算结果为true。匹配类型由可选的match参数指定,如果未指定,则默认为“:is”。

3.2.1. spamtest without :percent Argument
3.2.1. spamtest不带:百分比参数

When the ":percent" argument is not present in the "spamtest" test, the normalized result string provided for the left-hand side of the test starts with a numeric value in the range "0" (zero) through "10", with meanings summarized below:

当“:percent”参数不存在于“spamtest”测试中时,为测试左侧提供的标准化结果字符串以“0”(零)到“10”范围内的数值开始,其含义总结如下:

   +----------+--------------------------------------------------------+
   | spamtest | interpretation                                         |
   | value    |                                                        |
   +----------+--------------------------------------------------------+
   | 0        | message was not tested for spam, or Sieve could not    |
   |          | determine whether any test was done                    |
   |          |                                                        |
   | 1        | message was tested and is clear of spam                |
   |          |                                                        |
   | 2 - 9    | message was tested and may contain spam; a higher      |
   |          | number indicates a greater likelihood of spam          |
   |          |                                                        |
   | 10       | message was tested and definitely contains spam        |
   +----------+--------------------------------------------------------+
        
   +----------+--------------------------------------------------------+
   | spamtest | interpretation                                         |
   | value    |                                                        |
   +----------+--------------------------------------------------------+
   | 0        | message was not tested for spam, or Sieve could not    |
   |          | determine whether any test was done                    |
   |          |                                                        |
   | 1        | message was tested and is clear of spam                |
   |          |                                                        |
   | 2 - 9    | message was tested and may contain spam; a higher      |
   |          | number indicates a greater likelihood of spam          |
   |          |                                                        |
   | 10       | message was tested and definitely contains spam        |
   +----------+--------------------------------------------------------+
        

The underlying Sieve implementation will map whatever spam check is done into this numeric range, as appropriate.

底层的Sieve实现将根据需要将垃圾邮件检查映射到这个数字范围。

Examples:

示例:

require ["spamtest", "fileinto", "relational", "comparator-i;ascii-numeric"];

要求[“spamtest”、“fileinto”、“relational”、“comparator-i;ascii数字”];

           if spamtest :value "eq" :comparator "i;ascii-numeric" "0"
           {
               fileinto "INBOX.unclassified";
           }
           elsif spamtest :value "ge" :comparator "i;ascii-numeric" "3"
           {
               fileinto "INBOX.spam-trap";
           }
        
           if spamtest :value "eq" :comparator "i;ascii-numeric" "0"
           {
               fileinto "INBOX.unclassified";
           }
           elsif spamtest :value "ge" :comparator "i;ascii-numeric" "3"
           {
               fileinto "INBOX.spam-trap";
           }
        

In this example, any message that has not passed through a spam check tool will be filed into the mailbox "INBOX.unclassified". Any message with a normalized result value greater than or equal to "3" is filed into a mailbox called "INBOX.spam-trap" in the user's mailstore.

在此示例中,任何未通过垃圾邮件检查工具的邮件都将被归档到邮箱“INBOX.unclassified”。任何规范化结果值大于或等于“3”的邮件都将归档到用户邮件存储中名为“INBOX.spam trap”的邮箱中。

3.2.2. spamtest with :percent Argument
3.2.2. spamtest,带:百分比参数

When the ":percent" argument is present in the "spamtest" test, the normalized result string provided for the left-hand side of the test starts with a numeric value in the range "0" (zero) through "100", with meanings summarized below:

当“:percent”参数出现在“spamtest”测试中时,为测试左侧提供的标准化结果字符串以“0”(零)到“100”范围内的数值开始,其含义总结如下:

   +----------+-------------------------------------------------------+
   | spamtest | interpretation                                        |
   | value    |                                                       |
   +----------+-------------------------------------------------------+
   | 0        | message was tested and is clear of spam, or was not   |
   |          | tested for spam, or Sieve could not determine whether |
   |          | any test was done                                     |
   |          |                                                       |
   | 1 - 99   | message was tested and may contain spam; a higher     |
   |          | percentage indicates a greater likelihood of spam     |
   |          |                                                       |
   | 100      | message was tested and definitely contains spam       |
   +----------+-------------------------------------------------------+
        
   +----------+-------------------------------------------------------+
   | spamtest | interpretation                                        |
   | value    |                                                       |
   +----------+-------------------------------------------------------+
   | 0        | message was tested and is clear of spam, or was not   |
   |          | tested for spam, or Sieve could not determine whether |
   |          | any test was done                                     |
   |          |                                                       |
   | 1 - 99   | message was tested and may contain spam; a higher     |
   |          | percentage indicates a greater likelihood of spam     |
   |          |                                                       |
   | 100      | message was tested and definitely contains spam       |
   +----------+-------------------------------------------------------+
        

The underlying Sieve implementation will map whatever spam check is done into the numeric range, as appropriate.

底层的Sieve实现将根据需要将垃圾邮件检查映射到数值范围。

To determine whether or not the message was tested for spam, two options can be used:

要确定邮件是否经过垃圾邮件测试,可以使用两个选项:

a. a test with or without the ":percent" argument and ":count" match type, testing for the value "0" as described in Section 3.1.

a. 带有或不带有“:percent”参数和“:count”匹配类型的测试,测试值“0”,如第3.1节所述。

b. a test without the ":percent" argument using the ":value" match type, testing for the normalized result value "0" as described in Section 3.2.1.

b. 不带“:percent”参数的测试,使用“:value”匹配类型,测试规范化结果值“0”,如第3.2.1节所述。

Examples:

示例:

require ["spamtestplus", "fileinto", "relational", "comparator-i;ascii-numeric"];

要求[“spamtestplus”、“fileinto”、“relational”、“comparator-i;ascii数字”];

           if spamtest :value "eq"
                       :comparator "i;ascii-numeric" "0"
           {
               fileinto "INBOX.unclassified";
           }
           elsif spamtest :percent :value "eq"
                          :comparator "i;ascii-numeric" "0"
           {
               fileinto "INBOX.not-spam";
           }
           elsif spamtest :percent :value "lt"
                          :comparator "i;ascii-numeric" "37"
           {
               fileinto "INBOX.spam-trap";
           }
           else
           {
               discard;
           }
        
           if spamtest :value "eq"
                       :comparator "i;ascii-numeric" "0"
           {
               fileinto "INBOX.unclassified";
           }
           elsif spamtest :percent :value "eq"
                          :comparator "i;ascii-numeric" "0"
           {
               fileinto "INBOX.not-spam";
           }
           elsif spamtest :percent :value "lt"
                          :comparator "i;ascii-numeric" "37"
           {
               fileinto "INBOX.spam-trap";
           }
           else
           {
               discard;
           }
        

In this example, any message that has not passed through a spam check tool will be filed into the mailbox "INBOX.unclassified". Any message that is classified as definitely not containing spam (normalized result value "0") will be filed into the mailbox "INBOX.not-spam". Any message with a normalized result value less than "37" is filed into a mailbox called "INBOX.spam-trap" in the user's mailstore. Any other normalized result value will result in the message being discarded.

在此示例中,任何未通过垃圾邮件检查工具的邮件都将被归档到邮箱“INBOX.unclassified”。任何被归类为绝对不包含垃圾邮件(标准化结果值“0”)的邮件将被归档到邮箱“INBOX.not spam”。任何规范化结果值小于“37”的邮件都会被归档到用户邮件存储中名为“INBOX.spam trap”的邮箱中。任何其他规范化结果值都将导致丢弃消息。

Alternatively, the Sieve relational [RFC5231] ":count" match type can be used:

或者,可以使用筛关系[RFC5231]“:count”匹配类型:

Examples:

示例:

           if spamtest :percent :count "eq"
                       :comparator "i;ascii-numeric" "0"
           {
               fileinto "INBOX.unclassified";
           }
        
           if spamtest :percent :count "eq"
                       :comparator "i;ascii-numeric" "0"
           {
               fileinto "INBOX.unclassified";
           }
        
           elsif spamtest :percent :value "eq"
                          :comparator "i;ascii-numeric" "0"
           {
               fileinto "INBOX.not-spam";
           }
           elsif spamtest :percent :value "lt"
                          :comparator "i;ascii-numeric" "37"
           {
               fileinto "INBOX.spam-trap";
           }
           else
           {
               discard;
           }
        
           elsif spamtest :percent :value "eq"
                          :comparator "i;ascii-numeric" "0"
           {
               fileinto "INBOX.not-spam";
           }
           elsif spamtest :percent :value "lt"
                          :comparator "i;ascii-numeric" "37"
           {
               fileinto "INBOX.spam-trap";
           }
           else
           {
               discard;
           }
        

This example will result in exactly the same behavior as the previous one.

此示例将产生与前一个完全相同的行为。

3.3. Test virustest
3.3. 测试专家
           Usage:    virustest [COMPARATOR] [MATCH-TYPE]
                     <value: string>
        
           Usage:    virustest [COMPARATOR] [MATCH-TYPE]
                     <value: string>
        

Sieve implementations that implement the "virustest" test have an identifier of "virustest" for use with the capability mechanism.

实现“virustest”测试的Sieve实现的标识符为“virustest”,用于能力机制。

The "virustest" test evaluates to true if the normalized result string matches the value. The type of match is specified by the optional match argument, which defaults to ":is" if not specified.

如果规范化结果字符串与该值匹配,“virustest”测试将计算为true。匹配类型由可选的match参数指定,如果未指定,则默认为“:is”。

The normalized result string provided for the left side of the test starts with a numeric value in the range "0" (zero) through "5", with meanings summarized below:

为测试左侧提供的标准化结果字符串以“0”(零)到“5”范围内的数值开始,其含义总结如下:

   +-----------+-------------------------------------------------------+
   | virustest | interpretation                                        |
   | value     |                                                       |
   +-----------+-------------------------------------------------------+
   | 0         | message was not tested for viruses, or Sieve could    |
   |           | not determine whether any test was done               |
   |           |                                                       |
   | 1         | message was tested and contains no known viruses      |
   |           |                                                       |
   | 2         | message was tested and contained a known virus that   |
   |           | was replaced with harmless content                    |
   |           |                                                       |
   | 3         | message was tested and contained a known virus that   |
   |           | was "cured" such that it is now harmless              |
   |           |                                                       |
   | 4         | message was tested and possibly contains a known      |
   |           | virus                                                 |
   |           |                                                       |
   | 5         | message was tested and definitely contains a known    |
   |           | virus                                                 |
   +-----------+-------------------------------------------------------+
        
   +-----------+-------------------------------------------------------+
   | virustest | interpretation                                        |
   | value     |                                                       |
   +-----------+-------------------------------------------------------+
   | 0         | message was not tested for viruses, or Sieve could    |
   |           | not determine whether any test was done               |
   |           |                                                       |
   | 1         | message was tested and contains no known viruses      |
   |           |                                                       |
   | 2         | message was tested and contained a known virus that   |
   |           | was replaced with harmless content                    |
   |           |                                                       |
   | 3         | message was tested and contained a known virus that   |
   |           | was "cured" such that it is now harmless              |
   |           |                                                       |
   | 4         | message was tested and possibly contains a known      |
   |           | virus                                                 |
   |           |                                                       |
   | 5         | message was tested and definitely contains a known    |
   |           | virus                                                 |
   +-----------+-------------------------------------------------------+
        

The underlying Sieve implementation will map whatever virus checks are done into this numeric range, as appropriate. If the message has not been categorized by any virus checking tools, then the virustest result is "0".

底层的Sieve实现将根据需要将任何病毒检查映射到该数值范围。如果邮件未被任何病毒检查工具分类,则virustest结果为“0”。

Example:

例子:

require ["virustest", "fileinto", "relational", "comparator-i;ascii-numeric"];

要求[“virustest”、“fileinto”、“relational”、“comparator-i;ascii数字”];

           if virustest :value "eq" :comparator "i;ascii-numeric" "0"
           {
               fileinto "INBOX.unclassified";
           }
           if virustest :value "eq" :comparator "i;ascii-numeric" "4"
           {
               fileinto "INBOX.quarantine";
           }
           elsif virustest :value "eq" :comparator "i;ascii-numeric" "5"
           {
               discard;
           }
        
           if virustest :value "eq" :comparator "i;ascii-numeric" "0"
           {
               fileinto "INBOX.unclassified";
           }
           if virustest :value "eq" :comparator "i;ascii-numeric" "4"
           {
               fileinto "INBOX.quarantine";
           }
           elsif virustest :value "eq" :comparator "i;ascii-numeric" "5"
           {
               discard;
           }
        

In this example, any message that has not passed through a virus check tool will be filed into the mailbox "INBOX.unclassified". Any message with a normalized result value equal to "4" is filed into a

在此示例中,任何未通过病毒检查工具的邮件都将被归档到邮箱“INBOX.unclassified”。标准化结果值等于“4”的任何消息都将被归档到

mailbox called "INBOX.quarantine" in the user's mailstore. Any message with a normalized result value equal to "5" is discarded (removed) and not delivered to the user's mailstore.

用户邮件存储中名为“INBOX.quantial”的邮箱。任何规范化结果值等于“5”的消息都将被丢弃(删除),并且不会传递到用户的邮件存储。

4. Security Considerations
4. 安全考虑

Sieve implementations SHOULD ensure that "spamtest" and "virustest" tests only report spam and virus test results for messages that actually have gone through a legitimate spam or virus check process. In particular, if such checks rely on the addition and subsequent checking of private header fields, it is the responsibility of the implementation to ensure that such headers cannot be spoofed by the sender or intermediary and thereby prevent the implementation from being tricked into returning the wrong result for the test.

Sieve实现应确保“spamtest”和“virustest”测试仅报告实际通过合法垃圾邮件或病毒检查过程的邮件的垃圾邮件和病毒测试结果。特别是,如果此类检查依赖于对私有头字段的添加和后续检查,则实现有责任确保此类头不会被发送方或中间方欺骗,从而防止实现被骗返回错误的测试结果。

Server administrators must ensure that the virus checking tools are kept up to date, to provide reasonable protection for users using the "virustest" test. Users should be made aware of the fact that the "virustest" test does not provide a 100% reliable way to remove all viruses, and they should continue to exercise caution when dealing with messages of unknown content and origin.

服务器管理员必须确保病毒检查工具保持最新,以便为使用“virustest”测试的用户提供合理的保护。应该让用户意识到,“virustest”测试并不能提供100%可靠的方法来删除所有病毒,在处理未知内容和来源的邮件时,他们应该继续保持谨慎。

Beyond that, the "spamtest" and "virustest" extensions do not raise any security considerations that are not present in the base [RFC5228] protocol, and these issues are discussed in [RFC5228].

除此之外,“spamtest”和“virustest”扩展不会引起任何在基本[RFC5228]协议中不存在的安全问题,这些问题将在[RFC5228]中讨论。

5. IANA Considerations
5. IANA考虑

The following templates specify the IANA registration of the Sieve extensions specified in this document. The registrations for "spamtest" and "virustest" replace those from [RFC3685]:

以下模板指定了本文档中指定的筛网扩展的IANA注册。“spamtest”和“virustest”的注册将取代[RFC3685]中的注册:

5.1. spamtest Registration
5.1. 垃圾邮件测试注册

To: iana@iana.org Subject: Registration of new Sieve extension

致:iana@iana.org主题:新筛网扩展的注册

      Capability name: spamtest
      Description:     Provides a test to check for varying likelihood of
                       an email message being spam.
      RFC number:      RFC 5235
      Contact address: The Sieve discussion list <ietf-mta-filters@imc.org>
        
      Capability name: spamtest
      Description:     Provides a test to check for varying likelihood of
                       an email message being spam.
      RFC number:      RFC 5235
      Contact address: The Sieve discussion list <ietf-mta-filters@imc.org>
        

This information has been added to the list of Sieve extensions given on http://www.iana.org/assignments/sieve-extensions.

此信息已添加到上给出的筛网扩展列表中http://www.iana.org/assignments/sieve-extensions.

5.2. virustest Registration
5.2. 美德注册

To: iana@iana.org Subject: Registration of new Sieve extension

致:iana@iana.org主题:新筛网扩展的注册

      Capability name: virustest
      Description:     Provides a test to check for varying likelihood of
                       there being malicious content in an email message.
      RFC number:      RFC 5235
      Contact address: The Sieve discussion list <ietf-mta-filters@imc.org>
        
      Capability name: virustest
      Description:     Provides a test to check for varying likelihood of
                       there being malicious content in an email message.
      RFC number:      RFC 5235
      Contact address: The Sieve discussion list <ietf-mta-filters@imc.org>
        

This information has been added to the list of Sieve extensions given on http://www.iana.org/assignments/sieve-extensions.

此信息已添加到上给出的筛网扩展列表中http://www.iana.org/assignments/sieve-extensions.

5.3. spamtestplus Registration
5.3. spamtestplus注册

To: iana@iana.org Subject: Registration of new Sieve extension

致:iana@iana.org主题:新筛网扩展的注册

Capability name: spamtestplus Description: Provides a test to check for varying likelihood of an email message being spam, possibly using a percentage range. RFC number: RFC 5235 Contact address: The Sieve discussion list <ietf-mta-filters@imc.org>

功能名称:spamtestplus Description:提供一个测试,用于检查电子邮件成为垃圾邮件的不同可能性,可能使用百分比范围。RFC编号:RFC 5235联系地址:筛讨论列表<ietf mta-filters@imc.org>

This information has been added to the list of Sieve extensions given on http://www.iana.org/assignments/sieve-extensions.

此信息已添加到上给出的筛网扩展列表中http://www.iana.org/assignments/sieve-extensions.

6. References
6. 工具书类
6.1. Normative References
6.1. 规范性引用文件

[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月。

[RFC4790] Newman, C., Duerst, M., and A. Gulbrandsen, "Internet Application Protocol Collation Registry", RFC 4790, March 2007.

[RFC4790]Newman,C.,Duerst,M.,和A.Gulbrandsen,“互联网应用协议整理注册表”,RFC 47902007年3月。

[RFC5228] Guenther, P., Ed., and T. Showalter, Ed., "Sieve: An Email Filtering Language", RFC 5228, January 2008.

[RFC5228]Guenther,P.,Ed.,和T.Showalter,Ed.,“筛选:电子邮件过滤语言”,RFC 5228,2008年1月。

[RFC5231] Segmuller, W. and B. Leiba, "Sieve Email Filtering: Relational Extension", RFC 5231, January 2008.

[RFC5231]Segmuler,W.和B.Leiba,“筛选电子邮件过滤:关系扩展”,RFC 52312008年1月。

6.2. Informative References
6.2. 资料性引用

[RFC3685] Daboo, C., "SIEVE Email Filtering: Spamtest and VirusTest Extensions", RFC 3685, February 2004.

[RFC3685]Daboo,C.,“筛选电子邮件过滤:垃圾邮件测试和病毒测试扩展”,RFC3685,2004年2月。

Appendix A. Acknowledgments
附录A.确认书

Thanks to Mark E. Mallett, Tony Hansen, Jutta Degener, Ned Freed, Ashish Gawarikar, Alexey Melnikov, Nigel Swinson, and Aaron Stone for comments and corrections.

感谢Mark E.Mallett、Tony Hansen、Jutta Degener、Ned Freed、Ashish Gawarikar、Alexey Melnikov、Nigel Swinson和Aaron Stone的评论和更正。

Appendix B. Important Changes since RFC 3685
附录B.自RFC 3685以来的重要变化

Listed below are some of the major changes from the previous specification [RFC3685], which this one supersedes.

以下列出了先前规范[RFC3685]的一些主要变更,本规范取代了先前规范[RFC3685]。

1. A ":percent" argument has been added to the "spamtest" test adding a new 0-100 numerical range for test results.

1. “spamtest”测试中添加了“:percent”参数,为测试结果添加了一个新的0-100数值范围。

2. A "spamtestplus" requires item has been added to indicate the presence of this extension in scripts.

2. 已添加“spamtestplus”requires项,以指示脚本中存在此扩展。

3. The "count" match type from [RFC5231] can now be used to determine whether or not a message was tested.

3. [RFC5231]中的“计数”匹配类型现在可用于确定是否测试了消息。

4. Clarified that "test not done" also means "Sieve system could not determine if a test was done".

4. 澄清“未完成试验”也意味着“筛分系统无法确定是否进行了试验”。

Author's Address

作者地址

Cyrus Daboo

塞勒斯·达布

   EMail: cyrus@daboo.name
        
   EMail: cyrus@daboo.name
        

Full Copyright Statement

完整版权声明

Copyright (C) The IETF Trust (2008).

版权所有(C)IETF信托基金(2008年)。

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

本文件受BCP 78中包含的权利、许可和限制的约束,除其中规定外,作者保留其所有权利。

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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.

本文件及其包含的信息以“原样”为基础提供,贡献者、他/她所代表或赞助的组织(如有)、互联网协会、IETF信托基金和互联网工程任务组不承担任何明示或暗示的担保,包括但不限于任何保证,即使用本文中的信息不会侵犯任何权利,或对适销性或特定用途适用性的任何默示保证。

Intellectual Property

知识产权

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

IETF对可能声称与本文件所述技术的实施或使用有关的任何知识产权或其他权利的有效性或范围,或此类权利下的任何许可可能或可能不可用的程度,不采取任何立场;它也不表示它已作出任何独立努力来确定任何此类权利。有关RFC文件中权利的程序信息,请参见BCP 78和BCP 79。

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

向IETF秘书处披露的知识产权副本和任何许可证保证,或本规范实施者或用户试图获得使用此类专有权利的一般许可证或许可的结果,可从IETF在线知识产权存储库获取,网址为http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.

IETF邀请任何相关方提请其注意任何版权、专利或专利申请,或其他可能涵盖实施本标准所需技术的专有权利。请将信息发送至IETF的IETF-ipr@ietf.org.