sievec(1)


NAME

   sievec - Pigeonhole's Sieve script compiler

SYNOPSIS

   sievec [options] script-file [out-file]

DESCRIPTION

   The  sievec  command is part of the Pigeonhole Project (pigeonhole(7)),
   which adds Sieve (RFC 5228) support to the Dovecot secure IMAP and POP3
   server (dovecot(1)).

   Using  the  sievec command, Sieve scripts can be compiled into a binary
   representation. The resulting binary can be used  directly  to  process
   e-mail  messages  during  the  delivery  process.  The delivery of mail
   messages and - by means of the LDA Sieve plugin - also the execution of
   Sieve  scripts  is  performed  by  Dovecot's local delivery agent (LDA)
   called dovecot-lda(1).  Usually, it is not  necessary  to  compile  the
   Sieve  script  manually  using sievec, because dovecot-lda will do this
   automatically  if  the  binary  is  missing.  However,  in  some  cases
   dovecot-lda  does  not  have permission to write the compiled binary to
   disk, forcing it to recompile the script every  time  it  is  executed.
   Using  the sievec tool, this can be performed manually by an authorized
   user to increase performance.

   The Pigeonhole Sieve implementation  recognizes  files  with  a  .sieve
   extension  as  Sieve  scripts  and  corresponding  files  with a .svbin
   extension as the associated compiled binary.  This  means  for  example
   that   Dovecot's  LDA  process  will  first  look  for  a  binary  file
   "dovecot.svbin" when it  needs  to  execute  "dovecot.sieve".  It  will
   compile a new binary when it is missing or outdated.

   The sievec command is also useful to verify Sieve scripts before using.
   Additionally, with the -d option it can  output  a  textual  (and  thus
   human-readable) dump of the generated Sieve code to the specified file.
   The output is then identical to what the sieve-dump(1) command produces
   for  a stored binary file. This output is mainly useful to find bugs in
   the compiler that yield corrupt binaries.

OPTIONS

   -c config-file
          Alternative Dovecot configuration file path.

   -d     Don't write the binary to out-file, but write a textual dump  of
          the  binary instead. In this context, the out-file value '-' has
          special meaning: it causes the the textual dump to be written to
          stdout.   The  out-file  argument may also be omitted, which has
          the same effect as '-'.  The output is  identical  to  what  the
          sieve-dump(1) command produces for a compiled Sieve binary file.
          Note that this option is not allowed when the out-file  argument
          is a directory.

   -D     Enable Sieve debugging.

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

   -u user
          Run the Sieve script for  the  given  user.  When  omitted,  the
          command  will  be executed with the environment of the currently
          logged in user.

   -x extensions
          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  configured  set  of  active 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.

          For example -x "+imapflags -enotify" will enable the  deprecated
          imapflags  extension and disable the enotify extension. The rest
          of the active extensions depends  on  the  sieve_extensions  and
          sieve_global_extensions   settings.   By   default,  i.e.   when
          sieve_extensions     and     sieve_global_extensions      remain
          unconfigured, all supported extensions are available, except for
          deprecated extensions or those that are still under development.

ARGUMENTS

   script-file
          Specifies the script to be compiled. If the script-file argument
          is  a  directory,  all  files  in  that  directory with a .sieve
          extension are compiled into a corresponding .svbin binary  file.
          The  compilation  is  not  halted  upon  errors;  it attempts to
          compile as many scripts in the directory as possible. Note  that
          the -d option and the out-file argument are not allowed when the
          script-file argument is a directory.

   out-file
          Specifies where the (binary)  output  is  to  be  written.  This
          argument  is  optional.   If  this argument is omitted, a binary
          compiled from <scriptname>.sieve is saved as <scriptname>.svbin.
          If this argument is omitted and -b is specified, the binary dump
          is output to stdout.

EXIT STATUS

   sievec will exit with one of the following values:

   0   Compile 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
          configuration file)

REPORTING BUGS

   Report bugs, including doveconf -n output, to the Dovecot Mailing  List
   <dovecot@dovecot.org>.   Information  about reporting bugs is available
   at: http://dovecot.org/bugreport.html

SEE ALSO

   dovecot(1),     dovecot-lda(1),     sieve-dump(1),     sieve-filter(1),
   sieve-test(1), pigeonhole(7)





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.