From: vince@victrola.wa.com (Vince Skahan) Reply-To: vince@victrola.wa.com (Vince Skahan) Followup-To: poster Newsgroups: comp.os.linux.announce,comp.os.linux.admin,comp.answers,news.answers Subject: Linux Electronic Mail HOWTO Approved: linux-announce@tc.cornell.edu (Matt Welsh) Archive-name: linux/howto/mail Last-modified: 15 November 1993 The Linux Electronic Mail HOWTO by Vince Skahan, v1.2, Last Modified 15 November 1993 --------------------------------------------------------------------------- This document describes the setup and care+feeding of Electronic Mail (e-mail) under Linux. You need to read this if you plan to communicate locally or to remote sites via electronic mail. You probably do *not* need to read this document if don't exchange electronic mail with other users on your system or with other sites. 0. Introduction The intent of this document is to answer some of the questions and comments that appear to meet the definition of 'frequently asked questions' about e-mail software under Linux. This document and the corresponding UUCP and News 'HOWTO' documents collectively supersede the UUCP-NEWS-MAIL-FAQ that has previously been posted to comp.os.linux.announce. 0.1 New versions of this document New versions of this document will be periodically posted to comp.os.linux.announce, comp.answers, and news.answers. They will also be added to the various anonymous ftp sites who archive such information including sunsite.unc.edu:/pub/Linux/docs/HOWTO. 0.2 Feedback I am interested in any feedback, positive or negative, regarding the content of this document via e-mail. Definitely contact me if you find errors or obvious omissions. I read, but do not necessarily respond to, all e-mail I receive. Requests for enhancements will be considered and acted upon based on that day's combination of available time, merit of the request, and daily blood pressure :-) Flames will quietly go to /dev/null so don't bother. Feedback concerning the actual format of the document should go to the HOWTO coordinator - Matt Welsh (mdw@sunsite.unc.edu). 0.3 Other sources of information USENET: ======= comp.mail.elm the ELM mail system. comp.mail.mh The Rand Message Handling system. comp.mail.mime Multipurpose Internet Mail Extensions. comp.mail.misc General discussions about computer mail. comp.mail.multi-media Multimedia Mail. comp.mail.mush The Mail User's Shell (MUSH). comp.mail.sendmail the BSD sendmail agent. comp.mail.uucp Mail in the uucp environment. Mailing Lists: ============== There is a smail-3.1 mailing list. To join (or get off) the list, send mail to smail3-users-request@cs.athabascau.ca make sure that you include the address at which you want to receive mail in the text of the message. To send a message to the list, send it to smail3-users@cs.athabascau.ca. Books: ====== The following is a non-inclusive set of books that will help... 'Managing UUCP and USENET' from O'Reilly and Associates is in my opinion the best book out there for figuring out the programs and protocols involved in being a USENET site. 'Unix Communications' from The Waite Group contains a nice description of all the pieces (and more) and how they fit together. 'Sendmail' from O'Reilly and Associates looks to like the definitive reference on sendmail-v8 and sendmail+IDA. It's a "must have" for anybody hoping to make sense out of sendmail without bleeding in the process. 0.4 Where *NOT* to look for help There is nothing 'special' about configuring and running mail under Linux (any more). Accordingly, you almost certainly do *NOT* want to be posting generic mail-related questions to the comp.os.linux.* newsgroups. Unless your posting is truly Linux-specific (ie, "please tell me what routers are already compiled into the SLS1.03 version of smail3.1.28") you should be asking your questions in one of the newsgroups or mailing lists referenced above. 1.0 Hardware Requirements There are no specific hardware requirements for mail under Linux. You'll need some sort of 'transport' software to connect to remote systems, which means either tcp-ip or uucp. This could mean that you need a modem or ethernet card (depending on your setup). 2.0 Getting the software In general, I grab my sources from ftp.uu.net and the other fine archive sites on Internet. In addition, Linux-specific binary ports are found in the SLS distrbution and on the usual Linux anonymous ftp sites (sunsite.unc.edu and tsx-11.mit.edu in particular). The newspak-1.7.tar.z distribution contains config files and readme files related to building uucp, news, and mail software under Linux from the various freely-available sources. It can usually be found on sunsite.unc.edu in the directory /pub/Linux/system/Mail. 3.0 Mail 'Transport Agents' This section contains information related to 'transport agents', which means the underlying software that connects your local system to remote systems. 3.1 Smail v3.1 Smail3.1 seems to be a de-facto standard transport agent for uucp-only sites and for some smtp sites. It compiles without patching from the sources. In addition, smail is provided in binary form in the SLS distribution of Linux. The newspak distribution contains config files for smail3.1.28 under Linux that you can use to start with. If you're building smail from sources, you need to have CASE_NO_NEWLINES=true in your os/linux file. For a uucp-only system that has a MX-record and that wants a domainized header (who goes through a smart-host for everything), these are the entire config files you'll need: replace 'subdomain.domain' with your domain name replace 'myhostname' with you un-domainized hostname replace 'my_uucp_neighbor' with the uucp name of your upstream site #-------- /usr/local/lib/smail/config ----------------- # # domains we belong to visible_domain=subdomain.domain:uucp # # who we're known as (fully-qualified-site-name) visible_name=myhostname.subdomain.domain # # who we go through smart_path=my_uucp_neighbor # #---------- /usr/local/lib/smail/paths -------------- # # we're a domainized site, make sure we accept mail to both names myhostname %s myhostname.subdomain.domain %s #------------------------------------------------------------------- To run smail as a smtp daemon, add the following to /etc/inetd.conf: smtp stream tcp nowait root /usr/bin/smtpd smtpd Outgoing mail gets sent automatically, when using elm. If your internet link is down when you send mail, then the mail sits in '/usr/spool/smail/input'. When the link next comes up, 'runq' is run which causes the mail to be sent. 3.2 Sendmail+IDA There is a nice binary distribution of sendmail5.65c+IDA on sunsite in pub/Linux/system/Mail that I highly recommend. I run a uucp-only site and use sendmail5.65c+IDA instead of smail3.1.28 due to the incredible ease of use. To install it... - you'll probably want to remove (or rename) all the files from smail (see the /install/installed directory if you are SLS) to be safe. - cd to / then 'gunzip -c sendmail5.65c+IDA.tpz | tar xvf -' - cd to /usr/local/src/sendmail5.65c+IDA/ida/cf and copy the example local.m4 file to 'yourhostname.m4'. Edit out the distributed hostname, aliases, and smarthost and put in the correct one for your site. The default file is for a uucp-only site who has domainized headers. Then 'make yourhostname.cf' and move the resulting file to /etc/sendmail.cf - if you are uucp-only, you do *NOT* need to create any of the tables mentioned in the README.linux file. Just edit the .m4 file, make sendmail.cf, and start testing it. - if you're uucp-only and you talk to sites in addition to your 'smart-host', you'll need to add uucpxtable entries for each (or mail to them will also go through the smart host) and run dbm against the revised uucpxtable. - if you change your .cf file, be sure to refreeze your config with /usr/lib/sendmail -bz to make the changes take effect. Another nice thing is that if you have mail.debug set and you run syslogd, your incoming and outgoing mail messages will get logged. See the /etc/syslog.conf file for details. There's a new version of sendmail5.67a+IDA1.5 out at ftp.uiuc.edu that also compiles and runs fine under Linux. Grab the older version from sunsite and look in the sources provided there for Linux-specific patches. Rich Braun has done a great job in 'blazing the trail' so patching the current version is pretty simple. 3.3 Sendmail 8.6 Sendmail 8.6.4 from Berkeley is the latest major revision after sendmail5. It has wonderful built-in support for building under Linux. Just 'make linux' and you'll be all set. 3.4 Other 'transport agents' The following also are known to run under Linux. Consult 'archie' for details regarding how to find them... smail2.5 - very simple UUCP-based smail 4.0 Mail 'User Agents' This section contains information related to 'user agents', which means the software the user sees and uses. This software relies on the 'transport agents' mentioned above. 4.1 Elm Elm compiles, installs, and runs flawlessly under Linux. For more information, see the elm sources and installation instructions. The only thing to know is that Elm's Configure script incorrectly sets the 'ranlib' variable in config.sh. When Configure gives you the chance to edit config.sh before proceeding, please do so and set "ranlib='ranlib'" or the binaries will compile but not link. Elm and filter need to be mode 2755 (group mail) with /usr/spool/mail mode 775 and group mail. If you use a binary distribution like the one in SLS, you'll need to create a /usr/local/lib/elm/elm.rc file to override the compiled-in hostname and domain information: replace 'subdomain.domain' with your domain name replace 'myhostname' with you un-domainized hostname replace 'my_uucp_neighbor' with the uucp name of your upstream site #---------- /usr/local/lib/elm/elm.rc ------------------ # # this is the unqualified hostname hostname = myhostname # # this is the local domain hostdomain = subdomain.domain # # this is the fully qualified hostname hostfullname = myhostname.subdomain.domain # #-------------------------------------------------------- One thing you want to be aware of is that if you have Elm compiled to be MIME-able, you need metamail installed and in your path or Elm will not be able to read MIME mail you've received. 4.2 Mailx There is a fine binary implementation of mailx located on the various Linux archive sites. Make sure you grab version 5.3b or later since there are security problems in v5.3a. The only potential problem I'm aware of is that it seems to be compiled in a way that requires /usr/lib/smail rather than /usr/lib/sendmail as a transport agent. You probably need a link if you run sendmail on your system. I strongly recommend removing the old 'edmail' stuff from SLS and replacing it with mailx. This is rumored to be done already in the current SLS. 4.3 Other user agents The following also are known to run under Linux. Consult 'archie' for details regarding how to find them... Pine - from the Univ. of Washington Metamail - allows MIME support mh - yet another way to handle mail deliver - file/process mail based on rules procmail - file/process mail based on rules Majordomo - manages e-mail lists Mserv - provide files-by-mail 5.0 Acknowledgements The following people have helped in the assembly of the information (and experience) that helped make this document possible: Steve Robbins, Ian Kluft, Rich Braun, Ian Jackson, Syd Weinstein, Ralf Sauther, Martin White, Matt Welsh If I forgot anybody, my apologies...