SIEVE-TEST(category13-admin-isp-software.html) - phpMan

SIEVE-TEST(1)                       Dovecot                      SIEVE-TEST(1)
NAME
       sieve-test - Pigeonhole's Sieve script tester
SYNOPSIS
       sieve-test [options] script-file mail-file
DESCRIPTION
       The  sieve-test  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
       actually execute these actions, meaning that it does not store or  for-
       ward  the  message anywhere. Instead, it prints a detailed list of what
       actions would normally take place. Note that, even when  -e  is  speci-
       fied,  no  messages are ever transmitted to remote SMTP recipients. The
       outgoing messages 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 behav-
       iour and it can provide more detailed information about  script  execu-
       tion  problems  that  are  reported by the Sieve plugin, for example by
       tracing the execution and evaluation  of  commands  and  tests  respec-
       tively.
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 AT example.com.
       -c config-file
           Alternative Dovecot configuration file path.
       -C
           Force  compilation.  By  default,  the compiled binary is stored on
           disk. When this binary is found during the next execution of sieve-
           test 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 stdout.
       -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 trans-
           mit 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
           envelope test will compare to when  the  "from"  envelope  part  is
           requested.  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
           defaults to sender AT example.com.
       -m default-mailbox
           The  mailbox  where  the  keep  action  stores the message. This is
           "INBOX" 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
           appropriate.  If  the  -r  option is omitted, the original envelope
           recipient 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
           executed 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
           option. 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
       detailed  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
           values matched in those tests.
       -T debug
           Print debug messages as well.  This  is  usually  only  useful  for
           developers and is likely to produce messy output.
       -T addresses
           Print  byte  code addresses for the current trace output. Normally,
           only the current  Sieve  source  code  position  (line  number)  is
           printed.  The  byte  code  addresses are equal to those listed in a
           binary dump produced using the -d option or  by  the  sieve-dump(1)
           command.
   DEBUG SIEVE EXTENSION
       To  improve script debugging, this Sieve implementation supports a cus-
       tom Sieve language extension called 'vnd.dovecot.debug'.  It  adds  the
       debug_log command that allows logging debug messages.
       Example:
         require "vnd.dovecot.debug";
         if header :contains "subject" "hello" {
           debug_log "Subject header contains hello!";
         }
       Tools  such as sieve-test, sievec(1) and sieve-dump(1) have support for
       the vnd.dovecot.debug extension enabled by default and it is not neces-
       sary  to  enable  nor possible to disable the availability of the debug
       extension with the -x option. The logged messages are written to stdout
       in this case.
       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 AT 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)
2b97ab9                           March 2026                     SIEVE-TEST(1)