SIEVE-TEST(phpman.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
        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
            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  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
            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!";
         }
       , sievec(1) and sieve-dump(1) have support  for  the  vnd.dovecot.debug
       extension enabled by default and it is not necessary to enable nor pos-
       sible 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 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)
78ffb79                           March 2025                     SIEVE-TEST(1)