Sieve vacation extension

From Messaging Server Technical Reference Wiki
Jump to: navigation, search


The MTA supports the standard Sieve extensions "vacation" and "vacation-seconds", defined in RFC 5230 and RFC 6131, respectively, in user-level Sieve filters. The respective capability names are "vacation" and "vacation-seconds", with "vacation-seconds" implying "vacation" which then need not be separately listed in a require clause; it suffices to list:


require "vacation-seconds";

In addition to the basic ":days" argument for "vacation", and the ":seconds" argument added by "vacation-seconds", the MTA also supports a private argument ":hours" (with the obvious meaning).

The max_vacations MTA option specifies the maximum number of Sieve "vacation" actions that may be performed by a Sieve script, with the default being 2. Exceeding this allowed number of vacation actions will result in an error "Too many vacations specified" during Sieve filter evaluation. (Though as of Messaging Server 7.0.5, if max_vacations=0 is set, then the "require" clause will fail and instead the error upon attempting to use "vacation" or "vacation :seconds" will be "Vacation not listed in require clause prior to use" or "Vacation-seconds not listed in require clause prior to use".)

The MTA supports a private action for system-level Sieves, "novacation", to disable user-level use of "vacation". Use of "vacation" may also be disabled via the FROM_ACCESS mapping table's$! flag; indeed, initial configuration of the MTA normally generates such a FROM_ACCESS mapping table to disable vacation message generation back to typical list "owner" addresses. (Technical note: New in 8.0, the effect of "novacation" has been refined a bit. In previous versions, "novacation" only took effect in Sieves evaluated after the one where "novacation" was invoked, and then "novacation" affected all subsequent use of "vacation". Since in practice "novacation" is used in the system Sieve to suppress any user Sieve use of vacation, and since the system Sieve is evaluated before any user Sieves, this aspect of "novacation" application had no significant effect. However, as of 8.0, "novacation" now affects those Sieves which are both: attached to the same recipient address, and evaluated later. This difference in effect is unlikely to matter for "novacation" -- but has been implemented for consistency with "nonotify".)

The MTA supports on "vacation" the private arguments ":reply", ":echo", and ":headers, controlling the format of the response message that the MTA generates. The default, if no such argument is specified, is to generate a Message Disposition Notification (MDN) as specified by RFC 5230. However, ":echo" will produce a "processed" message disposition notification (MDN) that contains the original message as returned content; or ":reply" will produce a pure reply containing only the reply text.

The MTA supports a private argument ":noaddresses" that suppresses the MTA's normal requirement (per the RFC 5230, Section 4.5 requirement) that the recipient address or one of its aliases (a mailAlternateAddress or mailEquivalentAddress value, or any alias address specified via the ":addresses" argument) must appear in a recipient header line in order for a vacation response message to be generated.

As of MS 8.0.2.3, the MTA supports a private argument ":noheadercheck" that suppresses the MTA's normal requirement (per the RFC 5230, Section 4.6 requirement) that various header fields, e.g., List-Id:, not be present for a vacation reply to the generated.

The MTA supports provisioning of users (and domains) with various LDAP attributes that the MTA will interpret as requesting vacation handling: the MTA will convert the values of such LDAP attributes into a pseudo-Sieve script (that is, a "vacation" action), that will be evaluated and applied before any explicit Sieve script of the user's. Such LDAP attributes typically have names of the form mailAutoReply* or vacation* -- for exact names in use, see the MTA options ldap_start_date, ldap_end_date, ldap_autoreply_mode, ldap_autoreply_subject, ldap_autoreply_text, ldap_autoreply_text_internal, ldap_autoreply_addresses, ldap_autoreply_timeout, and ldap_domain_attr_autoreply_timeout.

Previous response tracking, and suppression of additional vacation responses within some time period, is an essential part of "vacation" processing. For additional details on the MTA's implementation of such tracking, see the discussion of the Autoresponse periodicity MTA options.

As of MS 6.3, response message generation due to a "vacation" action will be included in MTA's message transaction log file Sieve filter field when the log_filter MTA option is enabled.

As of the 8.0 release, warnings that occur during Sieve evaluation such as issues with the vacation extension (or issues involving the memcache protocol or the duplicate extension), plus any specifically specified warning text specified via the Sieve "warn" action will result in a "warn" clause in the log_filter field of MTA message transaction log entries.

Support for the fcc extension was added in MS 8.0.2.3. The fcc extension defines a new optional tagged argument "":fcc" that can be used with the notify and vacation actions to allow a copy of the vacation or notification message to be filed into a target mailbox belonging to the sieve owner. The mailbox argument to :fcc is analogous has the same semantics as the mailbox argument to the fileinto action; in effect it is as if a copy of the message was sent to the sieve owner with a user sieve specifying a fileinto action.


See also: