Search K
Appearance
Appearance
The Sieve vacation extension (RFC 5230) defines a mechanism to generate automatic replies to incoming email messages. It takes various precautions to make sure replies are only sent when appropriate.
Script authors can specify how often replies can be sent to a particular contact. In the original vacation extension, this interval is specified in days with a minimum of one day. When more granularity is necessary and particularly when replies must be sent more frequently than one day, the vacation-seconds extension (RFC 6131) can be used. This allows specifying the minimum reply interval in seconds with a minimum of zero (a reply is then always sent), depending on administrator configuration.
The vacation extension is available by default.
In contrast, the vacation-seconds extension - which implies the vacation extension when used - is not available by default and needs to be enabled explicitly by adding it to sieve_extensions
.
The configuration also needs to be adjusted accordingly to allow a non-reply period of less than a day.
WARNING
Invalid values for these settings will make the Sieve interpreter log a warning and revert to the default values.
sieve_vacation_default_period
Default | 7d |
---|---|
Value | time |
See Also |
Specifies the default period that is used when no :days
or :seconds
tag is specified.
The configured value must lie between sieve_vacation_min_period
and sieve_vacation_max_period
.
sieve_vacation_dont_check_recipient
Default | no |
---|---|
Value | boolean |
See Also |
This disables the checks for implicit delivery entirely. This means that the vacation command does not verify that the message is explicitly addressed at the recipient.
Use this option with caution. Specifying yes
will violate the Sieve
standards and can cause vacation replies to be sent for messages not
directly addressed at the recipient.
sieve_vacation_max_period
Default | [None] |
---|---|
Value | time |
See Also |
Specifies the maximum period that can be specified for the :days
tag of
the vacation command.
The configured value must be larger than sieve_vacation_min_period
.
A value of 0
has a special meaning: it indicates that there is no upper
limit.
sieve_vacation_min_period
Default | 1d |
---|---|
Value | time |
See Also |
Specifies the minimum period that can be specified for the :days
and
:seconds
tags of the vacation command.
A minimum of 0
indicates that users are allowed to make the Sieve
interpreter send a vacation response message for every incoming message
that meets the other reply criteria (refer to RFC 5230). A value of zero
is not recommended.
sieve_vacation_send_from_receipt
Default | no |
---|---|
Value | boolean |
See Also |
This setting determines whether vacation messages are sent with the SMTP
MAIL FROM
envelope address set to the recipient address of the Sieve
script owner.
Normally this is set to <>
, which is the default as recommended in the
specification. This is meant to prevent mail loops. However, there are
situations for which a valid sender address is required and this setting
can be used to accommodate for those.
sieve_vacation_use_original_recipient
Default | no |
---|---|
Value | boolean |
See Also |
This specifies whether the original envelope recipient should be used in the check for implicit delivery.
The vacation command checks headers of the incoming message, such as
To:
and Cc:
for the address of the recipient, to verify that the
message is explicitly addressed at the recipient. If the recipient address
is not found, the vacation action will not trigger a response to prevent
sending a reply when it is not appropriate.
Normally only the final recipient address is used in this check. This setting allows including the original recipient specified in the SMTP session if available.
This is useful to handle mail accounts with aliases. Use this option with caution: if you are using aliases that point to more than a single account, as senders can get multiple vacation responses for a single message.
Use the LDA -a
option or the LMTP/LDA lda_original_recipient_header
setting to
make the original SMTP recipient available to Sieve.
The vacation extension uses envelope sender and envelope recipient. They're taken from:
Envelope sender: -f
parameter to dovecot-lda if given, otherwise Return-Path:
header in the message.
Envelope recipient: -a
parameter to dovecot-lda if given, otherwise -d
parameter to dovecot-lda. If neither is given (delivering to system users), the $USER
environment is used.
The vacation replies are sent to the envelope sender.
List of autoreplied senders is stored in .dovecot.lda-dupes
file in user's home directory.
When you're testing the vacation feature, it's easy to forget that the reply is sent only once in the number of configured days. If you have problems getting the vacation reply, try deleting this file. If that didn't help, make sure the problem isn't related to sending mails in general by trying the "reject" Sieve command.
The automatic replies aren't sent if any of the following is true:
The envelope sender is not available (equal to <>)
The envelope sender and envelope recipient are the same
The sender recently (within :days
days; default 7
) got a reply from the same vacation command
The message contains at least one of the mailing list headers list-id
, list-owner
, list-subscribe
, list-post
, list-unsubscribe
, list-help
, or list-archive
Auto-Submitted: header exists with any value except no
Precedence: header exists with value junk
, bulk
, or list
The envelope sender is considered a system address, which either:
begins with MAILER-DAEMON
(case-insensitive),
begins with LISTSERV
(case-insensitive),
begins with majordomo
(case-insensitive),
contains the string -request
anywhere within it (case-sensitive), or
begins with owner-
(case-sensitive)
The envelope recipient and alternative addresses specified with the vacation command's :addresses
tag are not found in the message's To:
, Cc:
, Bcc:
, Resent-To:
, Resent-Cc:
, or Resent-Bcc:
fields.
plugin {
# Use vacation-seconds
sieve_extensions = +vacation-seconds
# One hour at minimum
sieve_vacation_min_period = 1h
# Ten days default
sieve_vacation_default_period = 10d
# Thirty days at maximum
sieve_vacation_max_period = 30d
}