Quick setup instructions for sendmail-5.65c+IDA under Linux ----------------------------------------------------------- by Rich Braun richb@rkbhome.jti.com revised: 21-Mar-93 IDA sendmail provides full sendmail functionality and compatibility with all other SMTP- and UUCP-based email software, but without the difficulty of configuring sendmail.cf files. It is a compact program which replaces 'smail', and works well with or without direct Internet or TCP/IP connectivity. Here are some instructions to get you started. The sample configuration is for a Linux site (rkbhome.jti.com) linked by UUCP to an Internet system (jti.com) providing domain name service and mail forwarding. These binaries were built using libc-4.3.2, gcc 2.3.3 and have been verified on kernels 0.99pl6 through 0.99pl7. The kit includes all source and config files which are altered from the standard sendmail-5.65c+IDA distribution cited in the References below. (For a kit containing binaries only, see Nathan Laredo's distribution described in the References.) In addition to sendmail itself, you will find binaries (and man pages in most instances) for the following support programs: dbm, rmail, lmail, m4, mailq, mailstats, mkdomext, newaliases, praliases, and xalparse. 1) Unpack the archive. Login in as root and type: gunzip sendmail-5.65c+IDA.tp cd / umask 022 tar xvf sendmail-5.65c+IDA.tp 2) If you don't have it already, rebuild your kernel with TCP/IP turned on. (Even if you don't plan on using TCP/IP networking, you'll need support for some of the internal system calls made by sendmail. The sendmail program will hang in step 3 if you don't have TCP.) 3) Configure your site name: Go to directory /usr/local/src/sendmail-5.65c+IDA/ida/cf, make a copy of the file local.m4, and change it to reflect your site name. Then type make .cf and put the result into /etc/sendmail.cf. There are is a slight incompatibility between the version of /usr/bin/m4 shipped in this kit with the "standard" Unix m4; the errors can be ignored (or corrected and sent back to richb@rkbhome.jti.com so I can fix future install kits). 4) Configure your host site's mail forwarder (if linked via UUCP): If your remote host site is running IDA sendmail already, great; it'll work using domain-style headers as soon as you perform the following at that site. 3a) Add the name to your named hosts file. The entry for 'rkbhome' in jti.com's named host file looks like: rkbhome IN MX 10 bart.jti.com. 4b) Create a domain table file, /usr/local/lib/mail/domaintable. Example: .jti.com jti.com rkbhome.jti.com rkbhome.jti.com 4c) Create a mailer table, /usr/local/lib/mail/mailtable; example: rkbhome.jti.com UUCP-A!rkbhome 4d) Create a uucpx table, /usr/local/lib/mail/uucpxtable; example: rkbhome rkbhome.jti.com Once you have done 3b through 3d, use the 'dbm load' command to create the necessary dbm-format files. If your host site is not running IDA sendmail, you may have to use the UUCP mail rules rather than UUCP-A, which provides for UUCP-style envelope "From" headers and domain-style message "From:" headers, e.g.: From rkbhome!richb From: richb@rkbhome.jti.com If you can figure out how to get your host site's mail configuration to generate both headers in the above format, then you'll have a properly working configuration. (Consider helping out the site admin by configuring IDA sendmail on that system; grab the source distribution as described below-- his life will be easier afterward!) Otherwise the default UUCP rules will work fine using bang-style addressing; e.g. jti.com!rkbhome!richb. 5) Install Taylor UUCP if you plan to use it and haven't already done so. (This configuration has been tested using UUCP version 1.04.) 6) If your Linux system is servicing others on a LAN, you'll probably want to set it up as a master server. The HIDDENDOMAIN feature of local.m4 will cause all outbound mail to appear as if it came from the master server (aside from any exceptions you have installed as indicated in section 3 above). Inbound mail will be dispatched according to the entries you've placed in /usr/local/lib/mail/aliases. Add the following command to your /etc/rc.local startup file if your system accepts mail via SMTP: /usr/lib/sendmail -bd -q20m Once it has been invoked, you should be able to see the SMTP banner message by typing "telnet localhost 25". 7) Rebuild your mail client software configured for use with sendmail, if you weren't using another variant of sendmail before. (The standard elm package for Linux is configured to use smail; move smail to a saved location and run the Configure script so it will find sendmail instead of smail.) 8) Create the mail queue directory, owner root: mkdir /usr/spool/mqueue 9) Build the aliases and "frozen config" files: newaliases /usr/lib/sendmail -bz You should be all set! Try sending mail to yourself locally and see that it's delivered properly. Then send mail to an Internet mail address and verify that it is properly queued. Log into your host system and send mail to yourself; check the headers. Finally, send _me_ mail (richb@rkbhome.jti.com) gently telling me how these instructions can be improved for the benefit of the next person who installs it. Hints on Using Common Features ------------------------------ 1) Running a simple mailing list You can turn IDA sendmail into a mailing-list forwarder by using the following syntax in the aliases file: mail-list::include:/usr/directory/recipients In the recipients file (which can be under any path and any ownership, so the admin can delegate responsibility of maintaining a list to anyone), put a list of addresses separated by commas, as in: richb@rkbhome.jti.com (Rich Braun), ..., gates@microsoft.com (The Rich One) 2) Echoing mail into a local newsgroup You might not like mixing all the traffic from mailing lists (like the linux-activists list) in with your personal mail, and you might like the convenience of using a newsreader instead of a mail reader to examine it. One way to deal with this problem is to teach IDA sendmail how to post articles into a newsgroup locally on your system. Here's a hint on doing this using the alias file: - Create a login name or an alias to use when subscribing to the list. We'll use the name 'funnies' for a local humor newsgroup. - Write a script that converts an email message into a news posting; the following may work for you: #!/bin/csh tail +2 | /usr/lib/newsbin/inject/inews -h -d mysite -n mysite.funnies (The 'tail +2' command simply strips off the 'From ' header; you may need something more rigorous since the RFCs defining netnews and SMTP message headers aren't identical.) - Install an alias which tells sendmail to feed incoming mail into the script you just wrote: funnies:"| csh -c /usr/local/lib/mail/doPost-funnies" - Create the newsgroup (e.g. mysite.funnies); if you're running C-news look for the bin/maint/addgroup script. References and Attributions --------------------------- Under the source directory /usr/local/src/sendmail-5.65c+IDA: - A detailed 42-page manual is in OPGUIDE.PS. - Lennart Lovstrand's paper describing IDA is in IDAPAPER.PS. - IDA configuration instructions are in ida/cf/DBM-Guide. - Options used in the m4 script are in ida/cf/OPTIONS. - M4 script examples are in ida/cf/M4. - DBM support file examples are in ida/lib. Source code can be obtained from: uxc.cso.uiuc.edu:/pub/sendmail-5.65c+IDA-1.4.4.tar.Z The src/conf.h file provided heren should be sufficient for compilation on your system once you've downloaded the source kit. A binary-only distribution (no docs or config patches) is distributed for Linux by Nathan Laredo; see the file tsx-11.mit.edu:/pub/linux/binaries/usr.bin/sendmail565.tar.Z Many people had a hand in the creation of this software and its accompanying documentation: Eric Allman Simon J Gerraty (sjg@melb.bull.oz.au) Nathan Laredo (nathan@eas.gatech.edu) Robert Larson (blarson@skat.usc.edu) Andy Linton (Andy.Linton@comp.vuw.ac.nz) Bruce Lilly (bruce@broadcast.sony.com) Lennart Lovstrand (Lovstrand.EuroPARC@Xerox.COM) Peter J Nilsson (pjn@ida.liu.se) Neil Rickert (rickert@cs.niu.edu) Keld Simonsen (keld@dkuug.dk) University of California at Berkeley Eric Wassenaar (e07@nikhefh.nikhef.nl)