Network Working Group                                           N. Freed
Internet-Draft                                          Sun Microsystems
Expires: September 20, 2007                               March 19, 2007


             Sieve Email Filtering:  Environment Extension
                    draft-freed-sieve-environment-00

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on September 20, 2007.

Copyright Notice

   Copyright (C) The IETF Trust (2007).

Abstract

   This document describes the "environment" extension to the Sieve
   email filtering language.  The "environment" extension gives Sieve
   access to information about the environment where the Sieve
   interpreter is running.

Change History (to be removed prior to publication as an RFC

   Changed one place string result from "UA" to "MUA".




Freed                  Expires September 20, 2007               [Page 1]


Internet-Draft         Sieve Environment Extension            March 2007


   Updated the IANA registration template

   Moved the ihave extension to a separate document.


1.  Introduction

   Sieve [I-D.ietf-sieve-3028bis] is a language for filtering email
   messages at or around the time of final delivery.  It is designed to
   be implementable on either a mail client or mail server.  It is
   suitable for running on a mail server where users may not be allowed
   to execute arbitrary programs, such as on black box Internet Message
   Access Protocol [RFC3501] servers, as it has no user-controlled loops
   or the ability to run external programs.

   Although sieve is intended to be independent of access protocol, mail
   architecture, and operating system, in some cases it is useful to
   allow scripts to access information about their execution context.
   The "environment" extension provides a new environment test that can
   be used to implement scripts that behave differently when moved from
   one system to another or otherwise operated in different contexts.


2.  Conventions used in this document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in BCP 14 [RFC2119].

   The terms used to describe the various components of the Sieve
   language are taken from [I-D.ietf-sieve-3028bis] section 1.1.


3.  Capability Identifiers

   The capability string associated with the extension defined in this
   document is "environment".


4.  Environment Test

   Usage:   environment [COMPARATOR] [MATCH-TYPE]
                        <name: string>
                        <key-list: string-list>

   The environment test retrieves the item of environment information
   specified by the name string and matches it to the values specified
   in the key-list.  The test succeeds if a match occurs.  The type of



Freed                  Expires September 20, 2007               [Page 2]


Internet-Draft         Sieve Environment Extension            March 2007


   match defaults to ":is" and the default comparator is "i;ascii-
   casemap".

   The current message is not a direct source of information for the
   environment test; the item of information specified by the name
   string is extracted from the environment and key-list comes from the
   script.

   The environment test MUST fail unconditionally if the specified
   information item does not exist.  A script MUST NOT fail with an
   error if the item does not exist.  This allows scripts to be written
   that handle nonexistent items gracefully.

   The "relational" extension [I-D.ietf-sieve-3431bis] adds a match type
   called ":count".  The count of an environment test is 0 if the
   environment information returned is the empty string, or 1 otherwise.

   Environment items can be standardized or vendor-defined.  An IANA
   registry is defined for both types of items.

4.1.  Standard Environment Items

   The initial set of standardized environment items is as follows:

    "name"    => the product name associated with the Sieve interpreter
    "version" => the product version associated with the Sieve
                 interpreter
    "host"    => the fully-qualified domain name of the host where the
                 Sieve script is executing
    "domain"  => the primary DNS domain associated with the Sieve
                 execution context, usually but not always a proper
                 suffix of the host name
    "evaluation-time"
              => Sieve processing is normally performing around or after
                 the time of final delivery. This item provides
                 additional information about the relationship to final
                 delivery. Possible return values are "MTA", meaning the
                 Sieve is being evaluated before final delivery, "MDA",
                 meaning evaluation is occurring during final delivery",
                 and "MUA", meaning evaluation is occurring after final
                 delivery.

   Implementations SHOULD support as many of the items on this initial
   list as possible.  Additional standardized items can only be defined
   in standards-track or experimental RFCs.






Freed                  Expires September 20, 2007               [Page 3]


Internet-Draft         Sieve Environment Extension            March 2007


4.2.  Vendor-defined Environment Items

   Environment item names beginning with "vnd." represent vendor-defined
   extensions.  Such extensions are not defined by Internet standards or
   RFCs, but are still registered with IANA in order to prevent
   conflicts.  Environment item names starting with "vnd."  SHOULD be
   followed by the name of the vendor and product, such as
   "vnd.acme.rocket-sled-status".

4.3.  IANA Registration of Environment Items

   A registry of environment items is provided by IANA.  Item names may
   be registered on a first-come, first-served basis.  Extensions
   designed for interoperable use SHOULD be defined as standards track
   or IESG approved experimental RFCs.

4.3.1.  Template for Environment Registrations

   The following template is to be used for registering new Sieve
   environment item names with IANA.

      To: iana@iana.org
      Subject: Registration of new Sieve environment item

      Item name: [the string for use in the 'environment' test]
      Description:     [a brief description of the semantics of the
                        value the item returns]
      RFC number:      [for extensions published as RFCs]
      Contact address: [email and/or physical address to contact for
                        additional information]

4.3.2.  Initial Environment Item Registrations

   TBD once the initial list has been determined.


5.  Security Considerations

   The environment extension may be used to obtain information about the
   system the sieve implementation is running on.  This information in
   turn may reveal details about service provider or enterprise
   infrastructure.

   All of the security considerations given in the base Sieve
   specification also apply to this extension.






Freed                  Expires September 20, 2007               [Page 4]


Internet-Draft         Sieve Environment Extension            March 2007


6.  IANA Considerations

   This specification defines a new IANA registry for Sieve environment
   item names.  The specifics of this registry are given in Section 4.3.

   The following templates specify the IANA registrations of the two
   Sieve extensions specified in this document:

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

      Capability name: environment
      Description:     The "environment" extension provides a new
                       environment test that can be used to implement
                       scripts that behave differently when moved
                       from one system to another or otherwise
                       operated in different contexts.
      RFC number:      RFC XXXX
      Contact address: Ned Freed <ned.freed@mrochek.com>

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


7.  References

7.1.  Normative references

   [I-D.ietf-sieve-3028bis]
              Guenther, P. and T. Showalter, "Sieve: An Email Filtering
              Language", draft-ietf-sieve-3028bis-12 (work in progress),
              February 2007, <http://www.ietf.org/internet-drafts/
              draft-ietf-sieve-3028bis-12.txt>.

   [I-D.ietf-sieve-3431bis]
              Segmuller, W. and B. Leiba, "Sieve Extension: Relational
              Tests", draft-ietf-sieve-3431bis-04 (work in progress),
              December 2005, <http://www.ietf.org/internet-drafts/
              draft-ietf-sieve-3431bis-04.txt>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

7.2.  Informative references

   [RFC3501]  Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION
              4rev1", RFC 3501, March 2003.




Freed                  Expires September 20, 2007               [Page 5]


Internet-Draft         Sieve Environment Extension            March 2007


Author's Address

   Ned Freed
   Sun Microsystems
   3401 Centrelake Drive, Suite 410
   Ontario, CA  92761-1205
   USA

   Phone: +1 909 457 4293
   Email: ned.freed@mrochek.com









































Freed                  Expires September 20, 2007               [Page 6]


Internet-Draft         Sieve Environment Extension            March 2007


Full Copyright Statement

   Copyright (C) The IETF Trust (2007).

   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.

   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.


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.

   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.

   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.


Acknowledgment

   Funding for the RFC Editor function is provided by the IETF
   Administrative Support Activity (IASA).





Freed                  Expires September 20, 2007               [Page 7]