Postfix and UUCP
Despite a serious lack of sex-appeal, email via UUCP over TCP
is a practical option for sites without permanent Internet connections,
and for sites without a fixed IP address. For first-hand information,
see the following guides:
Here's a graphical description of what this document is about:
And here's the table of contents of this document:
Here is how to set up a machine that sits on the Internet and
that forwards mail to a LAN that is connected via UUCP. See
the LAN to UUCP gateway section for
the other side of the story.
-
You need an rmail program that extracts the sender
address from mail that arrives via UUCP, and that feeds the mail
into the Postfix sendmail command. Most UNIX systems come
with an rmail utility. If you're in a pinch, try the one
bundled with the Postfix source code in the auxiliary/rmail
directory.
-
Define a pipe(8) based mail delivery transport for delivery
via UUCP:
/etc/postfix/master.cf:
uucp unix - n n - - pipe
flags=F user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
This runs the uux command to place outgoing mail into
the UUCP queue after replacing $nexthop by the next-hop hostname
(the receiving UUCP host) and after replacing $recipient by the
recipients. The pipe(8) delivery agent executes the uux
command without assistance from the shell, so there are no problems
with shell meta characters in command-line parameters.
-
Specify that mail for example.com, should be
delivered via UUCP, to a host named uucp-host:
/etc/postfix/transport:
example.com uucp:uucp-host
.example.com uucp:uucp-host
See the transport(5) manual page for more details.
-
Execute the command "postmap /etc/postfix/transport"
whenever you change the transport file.
-
Enable transport table lookups:
/etc/postfix/main.cf:
transport_maps = hash:/etc/postfix/transport
Specify dbm instead of hash if your system uses
dbm files instead of db files. To find out what map
types Postfix supports, use the command "postconf -m".
-
Add example.com to the list of domains that your site
is willing to relay mail for.
/etc/postfix/main.cf:
relay_domains = example.com ...other relay domains...
See the relay_domains configuration parameter description for
details.
-
Execute the command "postfix reload" to make the
changes effective.
Here is how to relay mail from a LAN via UUCP to the
Internet. See the Internet to UUCP
gateway section for the other side of the story.
-
You need an rmail program that extracts the sender
address from mail that arrives via UUCP, and that feeds the mail
into the Postfix sendmail command. Most UNIX systems come
with an rmail utility. If you're in a pinch, try the one
bundled with the Postfix source code in the auxiliary/rmail
directory.
-
Specify that all remote mail must be sent via the uucp
mail transport to your UUCP gateway host, say, uucp-gateway:
/etc/postfix/main.cf:
relayhost = uucp-gateway
default_transport = uucp
Postfix 2.0 and later also allows the following more succinct form:
/etc/postfix/main.cf:
default_transport = uucp:uucp-gateway
-
Define a pipe(8) based message delivery transport for mail
delivery via UUCP:
/etc/postfix/master.cf:
uucp unix - n n - - pipe
flags=F user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
This runs the uux command to place outgoing mail into
the UUCP queue. It 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.
-
Execute the command "postfix reload" to make the
changes effective.
|