Man Linux: Main Page and Category List

NAME

       sieve-test - Sieve script tester for the Dovecot secure IMAP server

SYNOPSIS

       sieve-test   [-c]   [-d   dump-file]   [-e]  [-f  envelope-sender]  [-l
       mail-location]  [-m   default-mailbox]   [-r   recipient-address]   [-S
       script-file] [-t] [-x "extension extension ..."]  script-file mail-file

DESCRIPTION

       The sieve-test command is part of  the  Sieve  implementation  for  the
       Dovecot  secure  IMAP  server.  Sieve (RFC 5228) is a simple and highly
       extensible  language  for  filtering  e-mail  messages.   It   can   be
       implemented for any type of mail access protocol, mail architecture and
       operating system. The language cannot execute external programs and  in
       its  basic  form it does not provide the means to cause infinite loops,
       making it suitable for running securely  on  mail  servers  where  mail
       users have no permission run arbitrary programs.

       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
       forward  the  message  anywere.  In stead, it prints a detailed list of
       what actions would normally take place.  Note that,  even  when  -e  is
       specified,  no messages are ever transmitted to remote SMTP recipients.
       The outgoing messages are printed to stdout in stead.

       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.

       The  command  has  two  mandatory  arguments: the script-file argument,
       which specifies the script to (compile and) execute, and the  mail-file
       argument,  which  specifies  the  file containing the e-mail message to
       filter.

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

OPTIONS

       -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 dump-file
              Causes  a  dump  of  the  generated  code  to  be written to the
              specified file. This  is  identical  to  the  dump  produced  by
              sieved(1).  Using  ’-’ as filename causes the dump to be written
              to stdout.

       -e     Turns on true execution of the set of actions that results  from
              running  the  script.  In combination with the -l parameter, the
              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  or  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.

       -l mail-location
              The location of the  user’s  mail  store.  The  syntax  of  this
              option’s  mail-location  parameter  is identical to what is used
              for the mail_location setting in the Dovecot config  file.  This
              parameter  is  typically used in combination with -e to test the
              actual delivery of messages.   If  -l  is  omitted  when  -e  is
              specified,  mail  store  actions  like  fileinto  and  keep  are
              skipped.

       -m default-mailbox
              The mailbox where the keep action stores the  message.  This  is
              "INBOX" by default.

       -r recipient-address
              The  envelope  recipient  address. This is what Sieve’s envelope
              test will compare to when the "to" envelope part  is  requested.
              Some  tests and actions will also use this as the owner’s e-mail
              address.

       -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     Enable  simple trace debugging; prints all encountered byte code
              instructions to stdout. This is currently only intelligible  for
              developers.

       -x "extension extension ..."
              Set the available extensions. The parameter is a space-separated
              list of the  active  extensions.  By  prepending  the  extension
              identifiers  with + or -, extensions can be included or excluded
              relative to the default set of extensions. If no extensions have
              a  +  or  -  prefix,  only  those extensions that are explicitly
              listed will be enabled. Unknown extensions  are  ignored  and  a
              warning  is  produced.  By default, all supported extensions are
              available, except for deprecated extensions or  those  that  are
              still under development.

              For  example -x "+imapflags -enotify" will enable the deprecated
              imapflags extension along with all extensions that are available
              by default, except for the enotify extension.

DEBUG SUPPORT

       To  improve  script  debugging,  the  Sieve  command line tools such as
       sieve-test  support  a   custom   Sieve   language   extension   called
       ’vnd.dovecot.debug’.  It  adds  the  debug_print  command  that  allows
       printing debug messages to stdout.

       Example:

       require "vnd.dovecot.debug";

       if header :contains "subject" "hello" {

         debug_print "Subject header contains hello!";

       }

       Other tools like sievec and sieved also recognize the vnd.dovecot.debug
       extension.  In  contrast,  the  actual Sieve plugin for the Dovecot LDA
       does not allow the use of the debug extension. So, keep  in  mind  that
       scripts  and  compiled  binaries  that refer to de debug extension will
       fail to be run by the Sieve plugin itself.

       Note that it is not necessary to enable nor  possible  to  disable  the
       availability of the debug extension with the -x option.

AUTHOR

       The  Sieve  implementation  for  Dovecot  was  written by Stephan Bosch
       <stephan@rename-it.nl>.

       Dovecot was written by Timo Sirainen <tss@iki.fi>.

SEE ALSO

       sievec(1), sieved(1)

                                  4 July 2009