dwww Home | Manual pages | Find package

SIEVE-TEST(1)                       Dovecot                       SIEVE-TEST(1)

NAME
       sieve-test - Pigeonhole's Sieve script tester

SYNOPSIS
       sieve-test [options] script-file mail-file

DESCRIPTION
        command  is  part  of Pigeonhole (pigeonhole(7)), which adds Sieve (RFC
       5228) and ManageSieve (RFC 5804) support to Dovecot (dovecot(1)).

       Using the sieve-test command, the execution  of  Sieve  scripts  can  be
       tested.  This  evaluates the script for the provided message, yielding a
       set of Sieve actions. Unless the -e option is specified, it does not ac-
       tually execute these actions, meaning that it does not store or  forward
       the message anywhere. Instead, it prints a detailed list of what actions
       would normally take place. Note that, even when -e is specified, no mes-
       sages  are ever transmitted to remote SMTP recipients. The outgoing mes-
       sages are always printed to stdout instead.

       This is a very useful tool to debug the execution of Sieve  scripts.  It
       can be used to verify newly installed scripts for the intended behaviour
       and  it  can  provide  more  detailed information about script execution
       problems that are reported by the Sieve plugin, for example  by  tracing
       the execution and evaluation of commands and tests respectively.

OPTIONS
       -a orig-recipient-address

           The  original envelope recipient address. This is what Sieve's enve-
           lope test will compare to when the "to" envelope part is  requested.
           Some  tests  and actions will also use this as the script owner's e-
           mail address. If this option is omitted, the  recipient  address  is
           retrieved from the "Envelope-To:", or "To:" message headers. If none
           of  these  headers is present either, the recipient address defaults
           to recipient@example.com.

       -c config-file

           Alternative Dovecot configuration file path.

       -C

            and its modification time is more recent than the script  file,  it
           is used and the script is not compiled again. This option forces the
           script  to  be  compiled, thus ignoring any present binary. Refer to
           sievec(1) for more information about Sieve compilation.

       -D

           Enable Sieve debugging.

       -d dump-file

           Causes a dump of the generated code to be written to  the  specified
           file. This is identical to the dump produced by sieve-dump(1). Using
           '-' as filename causes the dump to be written to

       -e

           Enables  true execution of the set of actions that results from run-
           ning the script. Use he -o parameter  to  specify  the  mail_driver,
           mail_path  and  other necessary storage settings. This allows actual
           delivery of messages can be tested. Note that this will not transmit
           any messages to remote SMTP recipients. Such actions only print  the
           outgoing message to stdout.

       -f envelope-sender

           The  envelope sender address (return path). This is what Sieve's en-
           velope test will compare to when the "from"  envelope  part  is  re-
           quested.  Also,  this  is  where response messages are 'sent' to. If
           this option is omitted, the sender address  is  retrieved  from  the
           "Return-Path:",  "Sender:"  or  "From:"  message headers. If none of
           these headers is present either, the  sender  envelope  address  de-
           faults to sender@example.com.

       -m default-mailbox

           The  mailbox  where the keep action stores the message. This is "IN-
           BOX" by default.

       -o setting=value

           Overrides the configuration setting  from  /etc/dovecot/dovecot.conf
           and  from the userdb with the given value. In order to override mul-
           tiple settings, the -o option may be specified multiple times.

       -r recipient-address

           The final envelope recipient address. Some tests  and  actions  will
           use  this as the script owner's e-mail address. For example, this is
           what is used by the vacation action to check whether a reply is  ap-
           propriate. If the -r option is omitted, the original envelope recip-
           ient address will be used instead (see -a option for more info).

       -s script-file

           Specify  additional  scripts  to be executed before the main script.
           Multiple -s arguments are allowed and the specified scripts are exe-
           cuted sequentially in the order specified at the command line.

       -t trace-file

           Enables runtime trace debugging. Trace debugging  provides  detailed
           insight  in  the  operations performed by the Sieve script. Refer to
           the runtime trace debugging section below. The trace information  is
           written  to  the  specified  file.  Using '-' as filename causes the
           trace data to be written to stdout.

       -T trace-option

           Configures runtime trace debugging, which is enabled with the -t op-
           tion. Refer to the runtime trace debugging section below.

       -u user/mask

           Run the command only for the given user. It's also possible  to  use
           '*' and '?' wildcards (e.g. -u *@example.org).

       -x auth_info

           auth_info  specifies additional conditions for the user command. The
           auth_info option string has to be given as name =  value  pair.  For
           multiple conditions the -x option could be supplied multiple times.

           Possible names for the auth_info are:

           service

               The  service  for  which the userdb lookup should be tested. The
               value may be the name of a service, commonly used with  Dovecot.
               For example: imap, pop3 or smtp.

       session

           Session identifier.

       lip

           The local IP address (server) for the test.

       rip

           The remote IP address (client) for the test.

       lport

           The local port, e.g. 143

       rport

           The remote port, e.g. 24567

       real_lip

           The local IP to which the client connected on this host.

       real_rip

           The remote IP where client connected from to this host.

       real_lport

           The local port to which client connected to to this host.

       real_rport

           The remote port from where the client connected from to this host.

       forward_<field>

           Field to forward as %{forward:field} to auth process.

ARGUMENTS
       script-file

           Specifies the script to (compile and) execute.

           Note  that  this  tool  looks  for a pre-compiled binary file with a
           .svbin extension and with basename and path identical to the  speci-
           fied  script.  Use the -C option to disable this behavior by forcing
           the script to be compiled into a new binary.

       mail-file

           Specifies the file containing the e-mail message to test with.

USAGE
   RUNTIME TRACE DEBUGGING
       Using the -t option, the sieve-test tool can be configured to print  de-
       tailed  trace  information  on  the  Sieve script execution to a file or
       standard output. For example, the encountered  commands,  the  performed
       tests and the matched values can be printed.

       The  runtime  trace  can be configured using the -T option, which can be
       specified multiple times. It can be used as follows:

       -T level=...

           Set the detail level of the trace debugging. One of the following

           values can be supplied:

               actions (default) : Only print executed  action  commands,  like
               keep, fileinto, reject and redirect.

           commands : Print any executed command, excluding test commands.

           tests : Print all executed commands and performed tests.

           matching : Print all executed commands, performed tests and the val-
           ues matched in those tests.

       -T debug

           Print debug messages as well. This is usually only useful for devel-
           opers and is likely to produce messy output.

       -T addresses

            option or by the sieve-dump(1) command.

   DEBUG SIEVE EXTENSION
       To improve script debugging, this Sieve implementation supports a custom
       Sieve  language  extension  called  'vnd.dovecot.debug'. It adds the de-
       bug_log command that allows logging debug messages.

       Example:

         require "vnd.dovecot.debug";

         if header :contains "subject" "hello" {
           debug_log "Subject header contains hello!";
         }

       , sievec(1) and sieve-dump(1) have support for the vnd.dovecot.debug ex-
       tension enabled by default and it is not necessary to enable nor  possi-
       ble to disable the availability of the debug extension with the

       In  contrast,  for the actual Sieve plugin for the Dovecot LDA (dovecot-
       lda(1)) the vnd.dovecot.debug extension needs to be  enabled  explicitly
       using  the  sieve_extensions  setting or sieve_global_extensions setting
       setting. The messages are then logged to the user's private  script  log
       file.  If  used  in a global script, the messages are logged through the
       default Dovecot logging facility.

EXIT STATUS
       sieve-test will exit with one of the following values:

       0

           Execution was successful. (EX_OK, EXIT_SUCCESS)

       1

           Operation  failed.  This  is  returned  for  almost  all   failures.
           (EXIT_FAILURE)

       64

           Invalid parameter given. (EX_USAGE)

FILES
       /etc/dovecot/dovecot.conf

           Dovecot's main configuration file.

       /etc/dovecot/conf.d/90-sieve.conf

           Sieve  interpreter settings (included from Dovecot's main configura-
           tion file)

REPORTING BUGS
       Report bugs, including doveconf -n output, to the Dovecot  Mailing  List
       dovecot@dovecot.org⟩. Information about reporting bugs is available at:
       https://dovecot.org/bugreport.html

SEE ALSO
       dovecot(1),  dovecot-lda(1),  sieve-dump(1), sieve-filter(1), sievec(1),
       pigeonhole(7)

78ffb79                            March 2025                     SIEVE-TEST(1)

Generated by dwww version 1.16 on Tue Dec 16 06:53:39 CET 2025.