4.7 Pitfalls

  • The use of the # to place comments into a .mc file for eventual transfer to your configuration file might not work as expected. The # is not special to the m4 processor, so m4 continues to process a line even though that line is intended to be a comment. So, instead of:

    # Here we define $m as our domain

    (which would see define as an m4 keyword), use single quotes to insulate all such comments from m4 interpretation:

    # `Here we define $m as our domain'
  • Never blindly overwrite your sendmail.cf file with a new one. Always compare the new version to the old first:

    % diff /etc/mail/sendmail.cf oursite.cf
    < ##### built by you@oursite.com on Sat Jan 1  11:26:39 PDT 2000
    > ##### built by you@oursite.com on Fri Dec 13 04:14:25 PDT

    Here, the only change was the date the files were built, but if you had expected some other change, this would tell you the change had failed.

  • Never edit your sendmail.cf file directly. If you do, you will never be able to generate a duplicate or update from your mc file. This is an especially serious problem when upgrading from one release of sendmail to a newer release. Should you make this mistake, reread the appropriate sections in this book and the documentation supplied with the sendmail source.

  • Don't assume UUCP support and UUCP relaying are turned off by default. Always use the nouucp feature (FEATURE(nouucp)) to disable UUCP unless you actually support UUCP:

    FEATURE(`nouucp')            recommended through V8.9
    FEATURE(`nouucp',`reject')   recommended with V8.10 and above

    Part I: Build and Install
    Chapter 2. Build and Install sendmail
    Chapter 4. Configure sendmail.cf with m4
    Part II: Administration
    Part III: The Configuration File