./mail/dovecot2-pigeonhole, Support for the Sieve language and the ManageSieve protocol

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 0.4.17, Package name: dovecot-pigeonhole-0.4.17, Maintainer: adam

This package is part of the Pigeonhole project (http://pigeonhole.dovecot.org).
It adds support for the Sieve language (RFC 5228) and the ManageSieve protocol
(RFC 5804) to the Dovecot Secure IMAP Server.

The Sieve language is used to specify how e-mail needs to be processed. By
writing Sieve scripts, users can customize how messages are delivered, e.g.
whether they are forwarded or stored in special folders. Unwanted messages can
be discarded or rejected, and, when the user is not available, the Sieve
interpreter can send an automated reply. Above all, the Sieve language is meant
to be simple, extensible and system independent. And, unlike most other mail
filtering script languages, it does not allow users to execute arbitrary
programs. This is particularly useful to prevent virtual users from having full
access to the mail store. The intention of the language is to make it impossible
for users to do anything more complex (and dangerous) than write simple mail

Using the ManageSieve protocol, users can upload their Sieve scripts remotely,
without needing direct filesystem access through FTP or SCP. Additionally,
aManageSieve server always makes sure that uploaded scripts are valid,
preventing compile failures at mail delivery.

This package provides Sieve support as a plugin to Dovecot's Local Delivery
Agent (LDA) and Dovecot's LMTP service. The ManageSieve protocol is provided is
an additional service, next to Dovecot's own POP3 and IMAP services.

Required to run:

Required to build:

Master sites:

SHA1: c8d1781ebd48a6cc324961c33be91b8f24c62925
RMD160: f150a7e80d53181287301ef742aefabebb50b6a7
Filesize: 1745.29 KB

Version history: (Expand)

CVS history: (Expand)

   2017-03-18 08:15:17 by Adam Ciarcinski | Files touched by this commit (3)
Log message:
Changes 0.4.17:
- LDA Sieve plugin: Fixed handling of an early explicit keep during
  multiscript execution. Action side-effects and the message snapshot would be
  lost at the final stage where the implicit keep is evaluated. This could
  result in the IMAP flags assigned to the message to be forgotten or that
  headers modified by the "editheader" extension would revert to their
  original state.
- file script storage: Amended the up-to-date time stamp comparison for
  on-disk binaries to include nanoseconds. This will fix problems occurring
  when both binary and script are saved within the same second. This fix is
  ineffective on older systems that have no support for nanoseconds in stat()
  timestamps, which     should be pretty rare nowadays.
- file script storage: Improve saving and listing permission error to include
  more details.
- imapsieve plugin: Make sure "INBOX" is upper case in static mailbox \ 
  Otherwise, the mailbox name would never match, since matching is performed
  case-sensitively and Dovecot only returns the upper-cased "INBOX".
- imapsieve plugin: Fixed assert failure occurring when used with virtual
- doveadm sieve plugin: Fixed crash when setting Sieve script via attribute's
  string value.
   2016-11-12 12:22:29 by Adam Ciarcinski | Files touched by this commit (3)
Log message:
* Part of the Sieve extprograms implementation was moved to Dovecot, which
  means that this release depends on Dovecot v2.2.26+.
* ManageSieve: The PUTSCRIPT command now allows uploading empty Sieve scripts.
  There was really no good reason to disallow doing that.
+ Sieve vnd.dovecot.report extension:
  + Added a Dovecot-Reporting-User field to the report body, which contains
    the e-mail address of the user sending the report.
  + Added support for configuring the "From:" address used in the report.
+ LDA sieve plugin: Implemented support for a "discard script" that is run
  when the message is going to be discarded. This allows doing something other
  than throwing the message away for good.
+ Sieve vnd.dovecot.environment extension: Added vnd.dovecot.config.*
  environment items. These environment items map to sieve_env_* settings from
  the plugin {} section in the configuration. Such values can of course also
  be returned from userdb.
+ Sieve vacation extension: Use the Microsoft X-Auto-Response-Suppress header
  to prevent unwanted responses from and to (older) Microsoft products.
+ ManageSieve: Added rawlog_dir setting to store ManageSieve traffic logs.
  This replaces at least partially the rawlog plugin (mimics similar IMAP/POP3
- doveadm sieve plugin: synchronization: Prevent setting file timestamps to
  unix epoch time. This occurred when Dovecot passed the timestamp as
  'unknown' during synchronization.
- Sieve exprograms plugin: Fixed spurious '+' sometimes returned at the end
  of socket-based program output.
- imapsieve plugin: Fixed crash occurring in specific situations.
- Performed various fixes based on static analysis and Clang warnings.
   2016-09-19 15:04:29 by Thomas Klausner | Files touched by this commit (147)
Log message:
Recursive PKGREVISION bump for gnutls shlib major bump.
   2016-07-09 03:28:39 by Takahiro Kambe | Files touched by this commit (2) | Package updated
Log message:
Update dovecot2-pigeonhole to 0.4.15.

v0.4.15 07-07-2016 Stephan Bosch <stephan@rename-it.nl>

* vacation extension: The sieve_user_email setting is now used in the check
  for implicit delivery.
- imapsieve plugin: For any mail transaction, the mailbox was opened a second
  time, even if no mailbox rule matched. This was unintentional, useless and
  caused problems when the imapsieve plugin was used with other plugins like
- extprograms plugin: Significantly improved error handling. No stream errors
  were logged.
- extprograms plugin: Fixed bug in handling of result code from remote program
  (script service).
- extprograms plugin: Connection to remote program service was not retried.
- Several small fixes based on static analysis.
- Fixed handling of quoted string localparts in email addresses.
   2016-05-03 03:51:39 by Takahiro Kambe | Files touched by this commit (3) | Package updated
Log message:
Update dovecot2-pigeonhole to 0.4.14.

v0.4.14 26-04-2016 Stephan Bosch <stephan@rename-it.nl>

* The address test now allows specifying the X-Original-To header.
+ Implemented the Sieve imapsieve extension and its IMAP counterpart
  (RFC 6785) as a set of plugins. This allows running Sieve scripts at IMAP
  activity, rather than at delivery. There are also facilities for the
  familiar sieve_before/sieve_after administrator scripts. A user script is
  defined for a mailbox using an IMAP METADATA entry, whereas administrator
  scripts are configured using mailbox matching rules defined in the plugin
+ Adjusted the Sieve ihave extension to allow capability tests to be performed
  at runtime. This way, scripts can be written that work both at delivery and
  from IMAP.
+ Implemented support for runtime trace debugging. This means that detailed
  information about which commands, actions and tests are performed is written
  to a file. That file is created in the configured directory, but only if
  that directory exists. This way, a particular user can be easily singled out
  for debugging. This works much like the Dovecot rawlog facility. The trace
  output is identical to what is produced using sieve-test with its "-t"
  command line option.
+ Added a "sieve_user_email" setting that configures the user's \ 
primary email
  address. This is mainly useful to have a user email address available in
  IMAP, where envelope data is unavailable.
+ Implemented the dovecot-specific "vnd.dovecot.report" extension. \ 
This allows
  sending report messages in the Message Abuse Reporting Format (RFC 5965).
    - extprograms plugin: Fixed epoll() panic caused by closing the output FD
      before the output stream.
    - Made sure that the local part of a mail address is encoded properly using
      quoted string syntax when it is not a dot-atom.
   2016-03-05 12:29:49 by Jonathan Perkin | Files touched by this commit (1813) | Package updated
Log message:
Bump PKGREVISION for security/openssl ABI bump.
   2016-02-22 13:41:01 by Takahiro Kambe | Files touched by this commit (3) | Package updated
Log message:
Update dovecot-pigeonhole to 0.4.12.
It is v0.4.12 release of Pigeonhole for Dovecot v2.2.21.

v0.4.12 06-02-2016 Stephan Bosch <stephan@rename-it.nl>

	+ Implemented the Sieve extracttext extension (RFC 5703; Section 7). It is now
	  possible to extract body text from a message into a variable.
	* Increased ABI version due to changes in the Sieve interpreter's object
	- multiscript: Fixed bug in handling of (implicit) keep; final keep action was
	  always executed as though there was a failure. This caused the keep action
	  to revert back to the initial message, causing editheader actions to be
	- managesieve-login: Fixed proxy to allow SASL mechanisms other than PLAIN.
	  Before, the proxy would fail if the server did not support the PLAIN
	- ldap storage: Prevent segfault occurring when assigning certain (global)
	  configuration options.

v0.4.11 08-01-2016 Stephan Bosch <stephan@rename-it.nl>

	- Sieve mime extension: Fixed the header :mime :anychild test to work properly
	  outside a foreverypart loop.
	- Several fixes in message body part handling:
	  - Fixed assert failure occurring when text extraction is attempted on a
	    empty or broken text part.
	  - Fixed assert failure in handling of body parts that are converted to text.
	  - Fixed header unfolding for (mime) headers parsed from any mime part.
	  - Fixed trimming for (mime) headers parsed from any mime part.
	  - Fixed erroneous changes to the message part tree structure performed when
	    re-parsing the message.
	- LDA Sieve plugin: Fixed logging of actions; sometimes the configured log
	  format was not followed.
	- LDA Sieve plugin: Fixed bug in error handling of script storage
	- Sieve Extprograms plugin: Ignored ENOTCONN error in shutdown(fd, SHUT_WR)
	- Fixed duplication of discard actions in the script result. Each discard was
	  counted as a separate action, which means that action limit would be crossed
	  too early.
	- Made sure that quota errors never get logged as errors in syslog.
	- Fixed handling of implicit keep for a partially executed transaction that
	  yielded a temporary failure.
	- Fixed handling of global errors. If master and user error handler were
	  identical, in some cases the log message could be lost.
	- Fixed AIX compile issue in message body parser.

v0.4.10 13-12-2015 Stephan Bosch <stephan@rename-it.nl>

	+ Implemented the Sieve mime and foreverypart extensions (RFC 5703). These
	  are fully implemented. The interaction with the editheader extension needs
	  some work, but this should not influence most uses; i.e., changes by the
	  editheader extension are not always visible using foreverypart/mime.
	+ Sieve body extension: Properly implemented the `:text' body transform. It
	  now extracts text for HTML message parts.
	+ Sieve enotify extension: mailto method: Implemented the
	  sieve_notify_mailto_envelope_from setting. This allows configuring the
	  source of the notification sender address for e-mail notifications. This is
	  similar to what already can be configured for redirect.
	+ Added a sieve_enabled (defaults to 'yes') setting that allows explicitly
	  disabling Sieve processing for particular users. This used to be possible by
	  setting `sieve=', but ever since the sieve_before, sieve_after and
	  sieve_default settings were added, this method was not reliable anymore.
	- variables extension: Fixed handling of empty string by the `:length' set
	  modifier. An empty string yielded an empty string rather than "0".
	- Fixed memory leak in the Sieve script byte code dumping facility. Extension
	  contexts were never actually freed.
	- Fixed handling of implicit keep when the last Sieve script is a global one.
	  In that case the implicit keep action was executed in global context, which
	  could mean that trivial (quota) errors ended up in the system log file,
	  rather than the user log file.
	- doveadm sieve plugin: Fixed crashes caused by incorrect context allocation
	  in the sieve command implementations.
   2015-11-04 18:41:21 by Alistair G. Crooks | Files touched by this commit (78)
Log message:
Remove duplicate SHA512 digests that crept in.