分类: BSD
2007-11-21 01:31:51
This document discusses various options to plug the maildrop delivery agent into Postfix:
Postfix can be configured to deliver mail directly to , without using the delivery agent as an intermediate. This means that you do not get local expansion or $HOME/.forward file processing. You would typically do this for with recipients that don't have UNIX home directories.
The following example shows how to use maildrop for some.domain and for someother.domain. The example comes in two parts.
Part 1 describes changes to the file:
1 /etc/postfix/:
2 maildrop_destination_recipient_limit = 1
3 = some.domain someother.domain
4 = maildrop
5 = hash:/etc/postfix/virtual_mailbox
6 = hash:/etc/postfix/virtual_alias
7
8 /etc/postfix/virtual_mailbox:
9 user1@some.domain ...text here does not matter...
10 user2@some.domain ...text here does not matter...
11 user3@someother.domain ...text here does not matter...
12
13 /etc/postfix/virtual_alias:
14 postmaster@some.domain postmaster
15 postmaster@someother.domain postmaster
Line 2 is needed so that Postfix will provide one recipient at a time to the maildrop delivery agent.
Line 3 informs Postfix that some.domain and someother.domain are so-called . Instead of listing the names in you can also list them in a file; see the documentation for details.
Line 4 specifies that mail for some.domain and someother.domain should be delivered by the maildrop delivery agent.
Lines 5 and 8-11 specify what recipients the Postfix SMTP server should receive mail for. This prevents the mail queue from becoming clogged with undeliverable messages. Specify an empty value (" =") to disable this feature.
Lines 6 and 13-15 redirect mail for postmaster to the local postmaster. requires that every domain has a postmaster address.
The vmail userid as used below is the user that maildrop should run as. This would be the owner of the virtual mailboxes if they all have the same owner. If maildrop is suid (see maildrop documentation), then maildrop will change to the appropriate owner to deliver the mail.
Note: Do not use the postfix user as the maildrop user.
Part 2 describes changes to the file:
/etc/postfix/:
maildrop unix - n n - - pipe
flags=ODRhu user=vmail argv=/path/to/maildrop -d ${recipient}
The manual page gives a detailed description of the above command line arguments, and more.
If you want to support user+extension@domain style addresses, use the following instead:
/etc/postfix/:
maildrop unix - n n - - pipe
flags=ODRhu user=vmail argv=/path/to/maildrop
-d ${user}@${nexthop} ${extension} ${recipient} ${user} ${nexthop}
The mail is delivered to ${user}@${nexthop} (match key for maildrop userdb lookup). The ${extension} and the other address components are available to maildrop rules as $1, $2, $3, ... and can be omitted from or ignored by maildrop when not needed.
Postfix can be configured to deliver mail to maildrop via the local delivery agent. This is slightly less efficient than the "direct" approach discussed above, but gives you the convenience of local expansion and $HOME/.forward file processing. You would typically use this for domains that are listed in and that have users with a UNIX system account.
To configure maildrop delivery for all UNIX system accounts:
/etc/postfix/:
= /path/to/maildrop -d ${USER}
Note: ${USER} is spelled in upper case.
To enable maildrop delivery for specific users only, you can use the Postfix delivery agent's feature:
/etc/postfix/:
= hash:/etc/postfix/mailbox_commands
/etc/postfix/mailbox_commands:
you /path/to/maildrop -d ${USER}
Maildrop delivery for specific users is also possible by invoking it from the user's $HOME/.forward file:
/home/you/.forward:
"|/path/to/maildrop -d ${USER}"