Introduction to sendmail
        
        
          The sendmail package contains a
          Mail Transport Agent (MTA).
        
        
          This package is known to build and work properly using an LFS 12.3
          platform.
        
        
          Package Information
        
        
        
          sendmail Dependencies
        
        
          Required
        
        
          OpenLDAP-2.6.9 (client)
        
        
          Recommended
        
        
          Cyrus SASL-2.1.28
        
        
          Optional
        
        
          ghostscript-10.04.0 (for creating PDF
          documentation), Procmail-3.24 (the configuration proposed
          below requires that procmail be present at run-time),
          and nph
        
       
      
        
          Installation of sendmail
        
        
          Before building sendmail, create
          the required user, group and directory with the following commands
          issued as the root user:
        
        groupadd -g 26 smmsp                               &&
useradd -c "Sendmail Daemon" -g smmsp -d /dev/null \
        -s /bin/false -u 26 smmsp                  &&
chmod -v 1777 /var/mail                            &&
install -v -m700 -d /var/spool/mqueue
        
          
          
            Note
          
          
            See the source tree sendmail/README
            file for information on linking optional packages into the build.
            Use the example below, which adds support for SASL, StartTLS
            (OpenSSL) and OpenLDAP, as a starting point. Of course,
            modify it to suit your particular needs.
          
         
        cat >> devtools/Site/site.config.m4 << "EOF"
APPENDDEF(`confENVDEF',`-D STARTTLS -D SASL -D LDAPMAP -D HASFLOCK')
APPENDDEF(`confLIBS', `-lssl -lcrypto -lsasl2 -lldap -llber')
APPENDDEF(`confINCDIRS', `-I/usr/include/sasl')
EOF
        
          Install sendmail with the
          following commands:
        
        cat >> devtools/Site/site.config.m4 << "EOF"
define(`confMANGRP',`root')
define(`confMANOWN',`root')
define(`confSBINGRP',`root')
define(`confUBINGRP',`root')
define(`confUBINOWN',`root')
EOF
sed -i 's|/usr/man/man|/usr/share/man/man|' \
    devtools/OS/Linux           &&
cd sendmail                     &&
sh Build                        &&
cd ../cf/cf                     &&
cp generic-linux.mc sendmail.mc &&
sh Build sendmail.cf
        
          This package does not come with a test suite.
        
        
          Now, as the root user:
        
        install -v -d -m755 /etc/mail &&
sh Build install-cf &&
cd ../..            &&
sh Build install    &&
install -v -m644 cf/cf/{submit,sendmail}.mc /etc/mail &&
cp -v -R cf/* /etc/mail                               &&
install -v -m755 -d /usr/share/doc/sendmail-8.18.1/{cf,sendmail} &&
install -v -m644 CACerts FAQ KNOWNBUGS LICENSE PGPKEYS README RELEASE_NOTES \
        /usr/share/doc/sendmail-8.18.1 &&
install -v -m644 sendmail/{README,SECURITY,TRACEFLAGS,TUNING} \
        /usr/share/doc/sendmail-8.18.1/sendmail &&
install -v -m644 cf/README /usr/share/doc/sendmail-8.18.1/cf &&
for manpage in sendmail editmap mailstats makemap praliases smrsh
do
    install -v -m644 $manpage/$manpage.8 /usr/share/man/man8
done &&
install -v -m644 sendmail/aliases.5    /usr/share/man/man5 &&
install -v -m644 sendmail/mailq.1      /usr/share/man/man1 &&
install -v -m644 sendmail/newaliases.1 /usr/share/man/man1 &&
install -v -m644 vacation/vacation.1   /usr/share/man/man1
        
          Install the sendmail Installation
          and Operations Guide with the following commands:
        
        
          
          
            Note
          
          
            Remove op.pdf from the make and install commands below if you
            don't have Ghostscript
            installed.
          
         
        cd doc/op                                       &&
sed -i 's/groff/GROFF_NO_SGR=1 groff/' Makefile &&
make op.txt op.pdf
        
          Now, as the root user:
        
        install -v -d -m755 /usr/share/doc/sendmail-8.18.1 &&
install -v -m644 op.ps op.txt op.pdf /usr/share/doc/sendmail-8.18.1 &&
cd ../..
       
      
        
          Command Explanations
        
        
          cat > devtools/Site/site.config.m4
          << "EOF": This creates a configuration file
          changing some of the default settings.
        
        
          sed ...
          devtools/OS/Linux: The site.config.m4 does not
          honor a change to the man directory, so fix it in the OS
          definitions.
        
        
          sh Build; sh Build sendmail.cf; sh
          Build install-cf; sh Build install: sendmail uses an m4 based build script to create the various
          Makefiles. These commands build and
          install the package.
        
        
          for manpage in...;do...;done; install
          ...: The man pages are installed already formatted
          and man displays them
          somewhat garbled. These commands replace the formatted pages with
          pages man can display
          properly.
        
       
      
        
          Configuring sendmail
        
        
        
          
            Configuration Information
          
          
            
            
              Note
            
            
              Ensure you have a fully qualified domain name defined in
              /etc/hosts for your system before
              proceeding.
            
           
          
            Create the /etc/mail/local-host-names and /etc/mail/aliases files using the following
            commands as the root user:
          
          echo $(hostname) > /etc/mail/local-host-names
cat > /etc/mail/aliases << "EOF"
postmaster: root
MAILER-DAEMON: root
EOF
# Does not work if there is no database backend compiled in:
#newaliases
          
            sendmail's primary configuration
            file, /etc/mail/sendmail.cf, is
            complex and not meant to be directly edited. The recommended
            method for changing it is to modify /etc/mail/sendmail.mc and various m4 files, then run the m4 macro processor from within
            /etc/mail as follows:
          
          cd /etc/mail &&
m4 m4/cf.m4 sendmail.mc > sendmail.cf
          
            A full explanation of the files to modify, and the available
            parameters can be found in /etc/mail/README.
          
         
        
          
             Systemd Unit
          
          
            To automate the running of sendmail at startup, install the
            sendmail.service unit included in the
            blfs-systemd-units-20241211 package:
          
          make install-sendmail
          
            
            
              Note
            
            
              The -qNm option to sendmail, where N is number
              of minutes, controls how often sendmail will process the mail queue. A
              default of 5 minutes is used in the systemd unit. Individual workstation users may
              want to set this as low as 1 minute, large installations
              handling more mail may want to set it higher.