This assumes that your organization has set up multiple internal MX hosts for the local domain.
If your intranet does not use MX records internally, you have to specify the gateway host itself:
Specify dbm:/etc/postfix/transport if your system uses dbm files instead of db.
How to set up Postfix on the firewall machine so that it relays mail for my.domain to a gateway machine on the inside, and so that it refuses mail for *.my.domain? The problem is that the standard relay_domains mail relaying restriction allows mail to *.my.domain when you specify my.domain.
Specify dbm:/etc/postfix/virtual if your system uses dbm files instead of db.
Unfortunately, the solution cannot use the transport table, because that table is ignored for destinations that match $mydestination. That's an implementation error, and it will be removed.
Postfix supports the maildir mailbox format. Edit main.cf and specify a line with: home_mailbox = maildir.
Do not use any shell meta characters or built-ins such as IFS or &&, because they force Postfix to run an expensive shell process.
With a distributed mail system such as Postfix, this is difficult to implement. Postfix does not run any mail delivery process under control by a user. Instead, mail delivery is done by daemon processes that have no parental relationship with user processes. This eliminates a large variety of potential security exploits with environment variables, signal handlers, and with other process attributes that UNIX passes on from parent to child.
In addition, Postfix uses multiple processes in order to insulate subsystems from each other. Making the delivery agents talk directly to user processes would defeat a lot of the effort that went into making Postfix more secure than ordinary mailers.
With the Postfix architecture, Delivered-To: is required to prevent mail forwarding loops. Fortunately, many mail user agents have per-user or even system-wide configuration files that can be set up to suppress specific message headers (for example ~/.mailrc and /usr/lib/Mail.rc).
With mailing lists, Delivered-To: can get in the way when the list exploder uses a "secret" alias that should not be shown in outbound mail. In order to tackle this, look up the FEATURE CONTROL section in the documentation of the local delivery agent.
See also the FAQ item for problems with the majordomo approve command.
Currently, the workaround is to edit the approve script to strip any header lines that match:
Yes, this assumes that the moderator knows what she is doing.
This causes all mail for the some.domain (and subdomains thereof) to be sent via UUCP to the host uucp-host.
uucp unix - n n - - pipe flags=F user=uucp argv=uux -n -z -a$sender - $nexthop!rmail ($recipient)
This runs the uux command, and substitutes the next-hop hostname (uucp-host) and the recipients before executing the command. The uux command is executed without assistance from the shell, so there are no problems with shell meta characters.
Specify dbm instead of hash if your system has no db support.
uucp unix - n n - - pipe flags=F user=uucp argv=uux -n -z -a$sender - $nexthop!rmail ($recipient)This runs the uux command, and substitutes the next-hop hostname (uucp-gateway, or whatever you specified) and the recipients before executing the command. The uux command is executed without assistance from the shell, so there are no problems with shell meta characters.
In order to build Postfix with db support on UNIX systems that do not have db support out of the box, you need the db-1.85 release, or the current version which has a db-1.85 compatible interface.
Use the following commands in the Postfix top-level directory:
Of course you will have to specify the actual location of the include directory and of the object library.
One problem: older DB versions install a file /usr/include/ndbm.h that is incompatible with the one in /usr/include. Be sure to get rid of the bogus file, or the linker will fail to find dbm_dirfno.