[Dovecot] Procmail patch for dovecot delivery

Gerhard Wiesinger lists at wiesinger.com
Thu Jul 6 09:03:49 EEST 2006


Hello!

Looks like the patch is also interesting for some other users.

http://www.xray.mpe.mpg.de/mailing-lists/procmail/2006-07/msg00023.html

Ciao,
Gerhard

--
Gerhard Wiesinger
E-Mail Mailinglist: lists at wiesinger.com Web: http://www.wiesinger.com/

On Wed, 5 Jul 2006, Gerhard Wiesinger wrote:

> Hello!
> 
> As discussed in the previous thread about "Dovecot deliver logging problem 
> and procmail" I have made a small patch for procmail to deliver through 
> dovecot's deliver program (or any other delivery program).
> 
> So Procmail does not write the mailboxes directly any more. So delivery is 
> done through pipes and an external program which can deliver the files.
> 
> Since dovecot's deliver program can not handle absolute pathes, theses files 
> are handled directly by procmail. See the configuration options below for 
> details.
> 
> Also INBOX handling needs special handling because this is handled through 
> the /var/spool/mail/$LOGNAME folder which dovecot deliver can not handle. So 
> this is mapped (when configured) to the INBOX folder.
> 
> For debugging purposes you can add the VERBOSE=on variable. A sample 
> configuration for dovecot usage with documentation is discussed below. Some 
> other delivery agents (e.g. cyrus) might need other options.
> 
> Keep in mind that the environment expansions with $ in the DELIVER_PROGRAM 
> must be escaped with a backslash. BOXNAME and RECIPIENT are 2 new variables 
> which can be used.
> 
> Status of the patch is that it "works for me". There is no other guarantee 
> ...
> 
> So I hope you like the patch. Maybe someone can make a short review of the 
> code changes.
> 
> Feel free for any feedback.
> 
> Ciao,
> Gerhard
> 
> ############################################################################
> 
> #Set on when debugging
> VERBOSE=on
> 
> #Replace `mail' with your mail directory (Pine uses mail, Elm uses Mail)
> MAILDIR=$HOME/Mail
> 
> #Directory for storing procmail log and rc files
> PMDIR=$HOME/.procmail
> 
> LOGFILE=$PMDIR/log
> 
> ##############################################################################
> #
> # Alternate delivery options through external program
> #
> ##############################################################################
> 
> #######################
> # Options for Mailboxes
> #######################
> # Possibilites for Mailboxes:
> # Mailbox is INBOX
> #  1.) Deliver through mbox
> #  2.) Deliver through external delivery program
> # Mailbox has an absolute path
> #  1.) Deliver through mbox
> #  2.) Deliver through external delivery program
> 
> ###############
> # INBOX options
> ###############
> # When set, delivers the INBOX throuh the external program
> # When not set, absolute path mailboxes are delivered through procmail.
> DELIVER_INBOX=yes
> # When set and the mailbox is the INBOX (e.g. /var/spool/mail/$LOGNAME)
> # it is replaced with a custom string (default INBOX)
> DELIVER_REPLACE_INBOX_NAME=yes
> # When DELIVER_REPLACE_INBOX_NAME is set the mailbox name is replaced with # 
> INBOX (default) or when DELIVER_NEW_INBOX_NAME is set, this name is used
> DELIVER_NEW_INBOX_NAME=INBOX
> 
> #######################
> # Absoulte Path options
> #######################
> # When set, absolute path mailboxes are delivered through the external 
> program
> # When not set, absolute path mailboxes are delivered through procmail.
> #DELIVER_ABSOLUTE_PATH=yes
> 
> ##################
> # Delivery options
> ##################
> # Do not lock anything even the rule has a lock assigned
> DELIVER_PIPE_NO_LOCK=yes
> # Deliver in raw mode even the rule flag states that it should be delivered 
> in raw mode
> DELIVER_RAW_MODE=yes
> # When set, remove the first From line of the mbox file through the external 
> program
> DELIVER_REMOVE_FROM=yes
> 
> ################
> # Global options
> ################
> # When set and the mail ends in a folder it is piped through the program
> # Global Switch for enabling alternate delivery method
> # All environment variables can be used with \$NAME
> # \$BOXNAME is the name of the mailbox (maybe converted to the rules 
> discussed above)
> # \$RECIPIENT is the recipient name, typically the user name
> DELIVER_PROGRAM="/usr/libexec/dovecot/deliver -m \$BOXNAME -d \$RECIPIENT -c 
> /etc/dovecot.conf"
> 
> :0
> $DEFAULT


More information about the dovecot mailing list