home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / umsmtp03.zip / sendmail.txt < prev    next >
Text File  |  1995-04-16  |  31KB  |  755 lines

  1. ******************************************************************************
  2. File: sendmail.txt                       Version 3.0               16-Apr-1995
  3.                                          Niel Kempson <kempson@snowyowl.co.uk>
  4. ******************************************************************************
  5.  
  6.  
  7. Configuring sendmail for use with the Warp Internet Access Kit
  8. ==============================================================
  9.  
  10.  
  11. Contents
  12. --------
  13.  
  14.      1. Introduction
  15.      2. Assumptions
  16.      3. Configuring sendmail
  17.         3.1 What's in a name ?
  18.         3.2 Customising the sendmail configuration file
  19.         3.3 Delivering mail to UltiMail/2
  20.         3.4 Delivering mail to LAMail
  21.         3.5 The TZ environment variable
  22.      4. The HOSTS file
  23.      5. Sendmail aliases
  24.      6. Running the sendmail daemon
  25.      7. Testing your sendmail setup
  26.      8. Sendmail error codes
  27.      9. Frequently encountered problems (FEPs)
  28.     10. What if it still doesn't work ?
  29.     11. Useful references
  30.     12. Change log
  31.  
  32.  
  33.  
  34. 1. Introduction
  35. ---------------
  36.  
  37. Please make sure that you have read the accompanying file 00README.TXT
  38. which explains the purpose of this kit.
  39.  
  40. The critical link in the SMTP chain is the sendmail.exe program.  It
  41. delivers outgoing messages using SMTP and also acts as a server waiting
  42. for incoming messages.  This document tells describes how to configure
  43. sendmail to work on your Warp/IAK system to exchange mail with the
  44. outside world using SMTP.
  45.  
  46. The instructions are by no means comprehensive and they are probably
  47. unclear in places so please feed back any constructive suggestions
  48. (including typos) so that I can improve this kit.  All of the information
  49. in this guide has been gleaned from books, examination of binary files
  50. etc.  There's nothing in here that could possibly be construed as
  51. official IBM information.
  52.  
  53.  
  54.  
  55. 2. Assumptions
  56. --------------
  57.  
  58. Throughout this document I have assumed that the IAK software has been
  59. installed under the C:\TCPIP directory.  If you have not installed it in
  60. this directory, you will need to adjust the examples quoting path
  61. specifications to suit your system setup.  The sendmail specific file
  62. sendmail.uml contains path specifications so please check it carefully if
  63. your setup isn't installed in the default location.
  64.  
  65.  
  66.  
  67. 3. Configuring sendmail
  68. -----------------------
  69.  
  70. Sendmail's behaviour is largely defined by a single configuration file,
  71. the contents of which resemble a knitting pattern!  The Warp IAK does not
  72. provide a working sendmail configuration file for use with SMTP mail, so
  73. I have included my working configuration file.  It was derived from the
  74. standard configuration provided with IBM TCP/IP, which in turn was
  75. derived from the Berkeley Unix distribution.
  76.  
  77.     3.1 What's in a name ?
  78.     ----------------------
  79.  
  80.     When sendmail starts, it looks for a configuration file.  If a file
  81.     is not explicitly specified, sendmail assumes a default name for the
  82.     configuration file of c:\tcpip\etc\sendmail.cf.  On Unix systems, the
  83.     default file is /etc/sendmail.cf, and for this reason sendmail
  84.     configuration files are often called "sendmail.cf" files.
  85.  
  86.     The actual file used can be specified on the sendmail command line
  87.     using the -C qualifier:
  88.     
  89.         sendmail                              # use c:\tcpip\etc\sendmail.cf
  90.         sendmail -Cxx.yy                      # use xx.yy
  91.         sendmail -Cc:\tcpip\etc\sendmail.uml  # use c:\tcpip\etc\sendmail.uml
  92.  
  93.     To complicate matters, UltiMail/2 (and News Reader/2) always invoke
  94.     sendmail with the -Cc:\tcpip\etc\sendmail.uml qualifier to force
  95.     sendmail to use a non-default configuration file.
  96.  
  97.     In contrast, LAMail (the mailer provided with IBM TCP/IP) doesn't
  98.     explicitly specify a configuration file when invoking sendmail - it
  99.     leaves sendmail to use its default.
  100.  
  101.     In this kit, you may see references to sendmail.cf and sendmail.uml
  102.     which are confusing.  The contents of the file tell sendmail how to
  103.     behave, the name of the file used by sendmail is determined by the
  104.     command line used to start it.
  105.     
  106.         Sendmail started by                     Configuration file used
  107.         -----------------------------------------------------------------
  108.         LAMail                                  c:\tcpip\etc\sendmail.cf
  109.         News Reader/2                           c:\tcpip\etc\sendmail.uml
  110.         UltiMail/2                              c:\tcpip\etc\sendmail.uml    
  111.         sendmail                                c:\tcpip\etc\sendmail.cf
  112.         sendmail -Cc:\tcpip\etc\sendmail.uml    c:\tcpip\etc\sendmail.uml    
  113.  
  114.         (The last two are examples of starting sendmail from the command
  115.          line.)
  116.  
  117.     If you're in any doubt, just copy sendmail.uml to sendmail.cf but 
  118.     remember to keep the two in step.
  119.  
  120.  
  121.     3.2 Customising the sendmail configuration file
  122.     -----------------------------------------------
  123.  
  124.     This kit includes an example configuration file (sendmail.uml) that I
  125.     use to allow UltiMail/2 Lite to work as an SMTP client rather than
  126.     the usual POP client.  As supplied, the configuration file supports:
  127.  
  128.         o   my official host name: snowyowl.demon.co.uk
  129.     
  130.         o   mail also accepted for other aliases: sos-gate.demon.co.uk,
  131.             snowyowl.com, snowyowl.co.uk & sos.co.uk
  132.     
  133.         o   IBM Warp IAK installed in c:\tcpip
  134.     
  135.         o   all outgoing mail is sent to post.demon.co.uk for onward
  136.             routing and delivery
  137.  
  138.     You will need to edit this file and customise it for your setup.
  139.  
  140.     NOTE:   You must use an editor that preserves TAB characters.  Do NOT
  141.             use the EPM or TEDIT editors that come with OS/2 - they
  142.             expand TABs into spaces and will cause the configuration file
  143.             to be useless.  The E editor is OK.
  144.  
  145.     Search for the string "---EDIT---" in this file and edit the
  146.     following line(s) in accordance with the notes in the adjacent
  147.     comment block.  There are 10 occurrences of "---EDIT---" to check.
  148.     PLEASE make sure that you check each of them before firing up
  149.     sendmail.  
  150.  
  151.     The changes that you need to make are summarised below:
  152.  
  153.         EDIT---01   define the name of your host (without any domain
  154.                     appended), plus any aliases within the same domain for
  155.                     which you will accept incoming mail.
  156.  
  157.                     NOTE: You must define the 'Cw' macro as well as the
  158.                     'Dw' macro.  9 out of 10 problems reported by people
  159.                     with umsmtp02 were caused by not defining Cw.  I hope
  160.                     that the sendmail.uml file is now totally clear in
  161.                     this respect.
  162.     
  163.         EDIT---02   define the domain in which your host lives.
  164.     
  165.         EDIT---03   define the "smart" mail relay, to which you send all
  166.                     outgoing mail for onward transmission.
  167.     
  168.         EDIT---04   define the location of the sendmail aliases file.
  169.     
  170.         EDIT---05   define the location of the sendmail help text file.
  171.     
  172.         EDIT---06   define the directory holding mail messages queued for
  173.                     transmission.
  174.     
  175.         EDIT---07   define the location of the sendmail statistics file.
  176.     
  177.         EDIT---08   define any aliases in another domain for which you will
  178.                     accept incoming mail.
  179.  
  180.                     NOTE: most people don't have more than one domain
  181.                     name and therefore will not want to enable this
  182.                     option.
  183.     
  184.         EDIT---09   define any aliases in another domain for which you will
  185.                     accept incoming mail.
  186.     
  187.                     NOTE: most people don't have more than one domain
  188.                     name and therefore will not want to enable this
  189.                     option.
  190.     
  191.         EDIT---10   define the command used to deliver incoming messages to
  192.                     your local mail program (e.g. UltiMail/2, LAMail).
  193.  
  194.                     NOTE: make sure that the Mlocal definition is all on
  195.                     one (long) line.  Do not allow your editor to wrap it
  196.                     over two lines.
  197.     
  198.     Remember that the sendmail.uml contains notes above each of the
  199.     "EDIT---" points, explaining what you need to do.  If they are
  200.     unclear, please let me know.
  201.  
  202.  
  203.     3.3  Delivering mail to UltiMail/2
  204.     ----------------------------------
  205.  
  206.     If you use UltiMail/2 as your local mail program, you need to:
  207.     
  208.         o   make sure that you have selected the appropriate "Mlocal"
  209.             line under "EDIT---10" to call the umailer.exe program.
  210.             
  211.         o   copy the configured sendmail.uml to c:\tcpip\etc\sendmail.uml.
  212.  
  213.         o   copy sendmail.hf to c:\tcpip\etc\sendmail.hf.
  214.         
  215.         o   read the accompanying file ultimail.txt
  216.  
  217.  
  218.     3.4  Delivering mail to LAMail
  219.     ------------------------------
  220.  
  221.     If you use LAMail as your local mail program, you need to:
  222.     
  223.         o   make sure that you have selected the appropriate "Mlocal"
  224.             line under "EDIT---10" to call the mail.exe program.
  225.             
  226.         o   copy the configured sendmail.uml to c:\tcpip\etc\sendmail.cf.
  227.  
  228.         o   copy sendmail.hf to c:\tcpip\etc\sendmail.hf.
  229.         
  230.  
  231.     3.5  The TZ environment variable
  232.     --------------------------------
  233.  
  234.     OS/2 itself does not appear to support timezones, but many
  235.     applications use the TZ environment variable to determine the local
  236.     timezone and adapt accordingly.  Sendmail uses TZ, but if it is not
  237.     defined, it assumes US West Coast time.  
  238.     
  239.     When your sendmail handles a message, it inserts a "Received:" line
  240.     into the message header block like this:
  241.  
  242.         Received: by yourhost.your.domain 
  243.                 (IBM OS/2 SENDMAIL VERSION 1.3.6)/(3.0sos)
  244.             id AA0019; Sun, 16 Apr 95 19:21:15 BST
  245.  
  246.     The "19:21:15 BST" indicates that sendmail thinks it is in the UK,
  247.     operating under British Summer time (GMT + 0100).  If the TZ
  248.     environment variable has not bee set, the header will look like:
  249.  
  250.         Received: by yourhost.your.domain 
  251.                 (IBM OS/2 SENDMAIL VERSION 1.3.6)/(3.0sos)
  252.             id AA0019; Sun, 16 Apr 95 19:21:15 -0800
  253.  
  254.     where the "-0800" indicates 8 hours behind GMT.  It's best to set TZ
  255.     in your CONFIG.SYS file so that all TZ-aware applications can
  256.     determine your local time zone.
  257.     
  258.     The command to use is
  259.     
  260.         SET TZ=SSSwwDDD
  261.  
  262.     where
  263.     
  264.         SSS     the three letter abbreviation of the timezone.
  265.  
  266.         ww      the number of hours WEST of GMT (Universal Time) in this
  267.                 timezone.  Timezones EAST of GMT have negative values.
  268.  
  269.         DDD     (optional) the three letter abbreviation of the timezone
  270.                 when daylight saving time is in effect.  If this part of
  271.                 the string is not present it is assumed that daylight
  272.                 saving time is never in effect.
  273.                 
  274.     Examples of valid TZ settings (though the names may be wrong) are:
  275.  
  276.         SET TZ=NST-12NDT        New Zealand Time 
  277.         SET TZ=EET-2EST         East European Time
  278.         SET TZ=CET-1CST         Central European Time
  279.  
  280.         SET TZ=UTC0             Coordinated universal time (GMT)
  281.         SET TZ=GMT0BST          Greenwich Mean Time, British Summer Time
  282.         
  283.         SET TZ=AST4ADT          US Atlantic Standard Time
  284.         SET TZ=EST5EDT          US Eastern Standard Time
  285.         SET TZ=CST6CDT          US Central Standard Time
  286.         SET TZ=MST7MDT          US Mountain Standard Time 
  287.         SET TZ=PST8PDT          US Pacific Standard Time
  288.         SET TZ=YST9YDT          Yukon Standard Time
  289.         SET TZ=HST10HDT         Hawaii Standard Time
  290.  
  291.  
  292.  
  293. 4. The HOSTS file
  294. -----------------
  295.  
  296. When connected to the Internet, you will normally use the Domain Name
  297. Service (DNS) to resolve host names and addresses.  When you try to queue
  298. or deliver a mail message, sendmail attempts to resolve the IP address of
  299. destination host.  If your dial-up link isn't running, sendmail will be
  300. unable to access the DNS to resolve the host and will bounce the message
  301. with an "error 68 - unknown host" message.
  302.  
  303. If the DNS is unavailable, IBM TCP/IP will look in the c:\tcpip\etc\hosts
  304. file for the host name.  Since you can't reasonably put all possible
  305. destination hosts in your hosts file, the best way to avoid this problem
  306. is always to send outgoing mail via a "smart" mail host and make sure
  307. that this host is included in the hosts file.  
  308.  
  309. Make sure that the DV macro is defined in sendmail.uml to send mail via
  310. a "smart" mail host, usually your provider's mail host, and make sure
  311. that this host is defined in the hosts file.  A minimum hosts file would
  312. be:
  313.  
  314.     127.0.0.1       localhost
  315.     a.b.c.d         yourhost.your.domain yourhost   # change this line
  316.     w.x.y.z         smart.mail.host                 # change this line
  317.  
  318. I strongly recommend that you create such a hosts file.
  319.  
  320. For Demon Internet subscribers, I strongly recommend that you route all
  321. outgoing mail via post.demon.co.uk and edit your sendmail.uml and hosts
  322. files to contain these entries:
  323.  
  324.     sendmail.uml:
  325.  
  326.         #---EDIT---03---
  327.         DVpost.demon.co.uk
  328.  
  329.     hosts:
  330.  
  331.         127.0.0.1       localhost
  332.         158.152.1.72    post.demon.co.uk  post
  333.         158.152.x.y     yourhost.demon.co.uk yourhost   # change this line
  334.  
  335.  
  336.  
  337. 5. Sendmail aliases
  338. -------------------
  339.  
  340. Sendmail supports an optional external alias file to allow redirection of
  341. SMTP mail.  By default, the alias file is c:\tcpip\etc\aliases and is in
  342. the following format:
  343.  
  344.     #
  345.     # Comment lines begin with hashes
  346.     #
  347.     alias:      real-address
  348.     alias:      real-1,real-2
  349.  
  350. The alias must be a local name (i.e. no "@" in the name), but the
  351. real-address part can be non-local.  Aliases are not case-sensitive, but
  352. aliases referenced by other aliases MUST be lower case.  You can use the
  353. aliases file to ensure that incoming mail is routed to a single mailbox:
  354.  
  355.     # Alias file
  356.     postmaster:         kempson
  357.     root:               kempson
  358.     MAILER-DAEMON:      kempson
  359.     help:               kempson,smith
  360.  
  361. If you are using your dial-up machine as a mail gateway between a local
  362. network and the Internet, the alias file provides a convenient means of
  363. forwarding incoming mail to the internal network users.  It's a good idea
  364. to alias postmaster (which every Internet host must support) to your
  365. normal e-mail address.
  366.  
  367. For example, Internet mail to snowyowl.com users will arrive via the
  368. PPP/SLIP connection and then could be forwarded to systems on the
  369. internal network by using an alias file like:
  370.  
  371.     # Alias file
  372.     postmaster:         kempson
  373.     help:               kempson,smith
  374.     kempson:            kempson@host1.snowyowl.com
  375.     jones:              jones@host2.snowyowl.com
  376.     smith:              smith@host2.snowyowl.com
  377.  
  378. When sending out mail, the user systems should ensure that the "Reply-To"
  379. address is set to that of the dial-up gateway:
  380.  
  381.     Reply-to: John Smith <smith@snowyowl.com>
  382.  
  383. and that the local machines forward their mail to the dial-up gateway for
  384. onward delivery.
  385.  
  386. Remember that the aliases file is optional - sendmail will function
  387. perfectly well if you don't feel the need to create one.
  388.  
  389. For Unix users, there is no equivalent to the "newaliases" or "sendmail -bi"
  390. commands to build an indexed database of aliases - the alias file is read
  391. each time sendmail is started.
  392.  
  393.  
  394.  
  395. 6. Running the sendmail daemon
  396. ------------------------------
  397.  
  398. To receive SMTP mail, your system must be running the sendmail daemon
  399. when the dial-up connection to the Internet is active.  It will listen
  400. for incoming SMTP connections (receiving mail) and will periodically
  401. examine the local mail queue and attempt to send any messages waiting
  402. there.
  403.  
  404. The command used to start the sendmail daemon is:
  405.  
  406.     c:\tcpip\bin\sendmail -Cc:\tcpip\etc\sendmail.uml -d1.1 -bd -q5m
  407.  
  408. where the options mean:
  409.  
  410.     -Cc:\tcpip\etc\sendmail.uml     specify the configuration file 
  411.     -d1.1                           log incoming messages ("-d" generates
  412.                                     *lots* of debugging information)
  413.     -bd                             run in background ('daemon') mode
  414.     -q5m                            check the outgoing queue every 5 minutes
  415.  
  416. You need to start the sendmail daemon *after* the PPP/SLIP connection is
  417. up and running.  If you try to start it beforehand, sendmail will stop
  418. with the error message "TCP/IP not functioning; exit sendmail".
  419.  
  420. A convenient place to start sendmail is in a separate command file that
  421. tests to see if the link is up and running before launching any network
  422. applications.  The file should look something like:
  423.  
  424.     ECHO Waiting for SLIP link to start ...
  425.     slipwait 600
  426.     
  427.     IF ERRORLEVEL 1 GOTO noslip
  428.         ECHO SLIP link is running, starting sendmail ... 
  429.         start /n sendmail -Cc:\tcpip\etc\sendmail.uml -d1.1 -bd -q5m
  430.     
  431.         GOTO exitlabel
  432.     :noslip
  433.         ECHO SLIP not running - no daemons started
  434.     :exitlabel
  435.  
  436. In this example, SLIPWAIT waits for up to 600 seconds to see if the SLIP
  437. connection is running.  If it is, SLIPWAIT exits with an ERRORLEVEL of 0,
  438. otherwise an ERRORLEVEL of 1 indicates that the link has not been
  439. started.
  440.  
  441. The bad news is that SLIPWAIT does not detect when a PPP link has been
  442. successfully established and IBM hasn't provided a PPPWAIT command :-(
  443.  
  444. IBM's sendmail is broadly compatible with the Unix implementations of
  445. sendmail v5.65, but not the newer sendmail v8.  Some of the command line
  446. options available are: -bd, -bt, -C, -d, -d#.#, -q<time>, -f <addr>, -t.
  447. Command line options not available include -ba, -bi, -bm, -bp, -bs, -bv,
  448. -bz, -v.
  449.  
  450.  
  451.  
  452. 7. Testing your sendmail setup
  453. ------------------------------
  454.  
  455. o   make sure that the mail queue directory (c:\tcpip\etc\mqueue) is
  456.     empty
  457.  
  458. o   delete or rename the sendmail.log and sendmail.err files in
  459.     c:\tcpip\etc
  460.  
  461. o   create a test message file called "LOCAL.TXT" containing these five
  462.     lines:
  463.  
  464.         >To: userid@yourhost.your.domain
  465.         >From: userid@yourhost.your.domain
  466.         >Subject: local test
  467.         >
  468.         >Hello
  469.  
  470.     where ">" denotes the beginning of the line - don't include it!
  471.     
  472. o   make sure that the PPP/SLIP connection is not running and then start
  473.     sendmail to deliver the message with this command (all on *one* line):
  474.     
  475.         sendmail -t -af local.txt
  476.  
  477.     but replace "userid@yourhost.your.domain" with your official e-mail
  478.     address.  
  479.     
  480. o   If the PPP/SLIP connection has never been started since you booted
  481.     the machine, you'll see something like:
  482.     
  483.         IBM OS/2 SENDMAIL VERSION 1.3.6)
  484.         Reading c:\tcpip\etc\sendmail.uml 10
  485.         TCP/IP not functioning; message queued
  486.  
  487.     If you have a look in the mail queue directory (c:\tcpip\etc\mqueue),
  488.     you should see two files called dfAAxxxx and qfAAxxxx, where xxxx is
  489.     a four digit number.  The file dfAAxxxx contains your message and
  490.     qfAAxxx is the control file that contains the mail headers and other
  491.     information.  It should be in a similar format to this:
  492.  
  493.         P1025
  494.         T791407275
  495.         DdfAA0019
  496.         Suserid@yourhost.your.domain
  497.         Ruserid@yourhost.your.domain
  498.         H?P?return-path: <yourhost.your.domain>
  499.         Hreceived: by yourhost.your.domain
  500.                 (IBM OS/2 SENDMAIL VERSION 1.3.6)/(3.0sos)
  501.             id AA0019; Sun, 5 Feb 95 19:21:15 GMT
  502.         H?D?date: Sun, 5 Feb 95 19:21:15 GMT
  503.         H?F?from: userid@yourhost.your.domain
  504.         H?x?full-name: 
  505.         H?M?message-id: <9502051921.AA0019@yourhost.your.domain>
  506.         Hsubject: local test
  507.  
  508. o   If the PPP/SLIP connection has been started since you booted the
  509.     machine, the TCP/IP stack will still be running and you'll see
  510.     something like:
  511.     
  512.         IBM OS/2 SENDMAIL VERSION 1.3.6)
  513.         Reading c:\tcpip\etc\sendmail.uml 10
  514.         02/05/95 19:32:09 mail delivered from: userid@yourhost.your.domain
  515.  
  516.     If you've already configured your local mailer, it should let you
  517.     know that a mail message has arrived.
  518.  
  519.  
  520.  
  521. 8. Sendmail error codes
  522. -----------------------
  523.  
  524. Sendmail is capable of exiting with a fair number of status values,
  525. nearly all of which indicate an error of some sort.  Both LAMail and
  526. UltiMail/2 report the error number but offer little or no explanation.
  527. The standard Berkeley Unix distribution includes source code for
  528. sendmail, so I've stolen the bits that document the exit status values
  529. (sysexits.c, sysexits.h) and included extracts here.  Naturally, IBM may
  530. have re-interpreted some of the status values or introduced new ones.
  531.  
  532.     Status  Meaning
  533.     ---------------------------------------------------------------------
  534.     0       EX_OK: successful termination.
  535.  
  536.     64      EX_USAGE: sendmail was called incorrectly, e.g. with the
  537.             wrong number of arguments, a bad flag, a bad syntax in a
  538.             parameter etc.
  539.                     
  540.     65      EX_DATAERR: the input data was incorrect in some way.  This
  541.             should only be used for user's data & not system files.
  542.             
  543.             This error commonly occurs when you queue a message for
  544.             delivery after shutting down a dial-up PPP/SLIP connection.
  545.             For some reason, the IBM TCP/IP stack remains loaded and
  546.             sendmail.exe (plus most other applications) think that the
  547.             network is still running.  Sendmail tries to deliver the
  548.             message and naturally fails to make contact with the host at
  549.             the other end and returns error 65 when the transaction times
  550.             out.
  551.  
  552.     66      EX_NOINPUT: an input file (not a system file) did not exist or
  553.             was not readable.  This could also include errors like "No
  554.             message" to a mailer (if it cared to catch it).
  555.  
  556.     67      EX_NOUSER: the user specified did not exist.  This might be
  557.             used for mail addresses or remote logins.
  558.  
  559.     68      EX_NOHOST: the host specified did not exist.  This is used in
  560.             mail addresses or network requests.
  561.  
  562.             At the time of sending the mail message, sendmail tries to
  563.             resolve the IP address of the destination host.  If the
  564.             network is not running, sendmail cannot use the domain name
  565.             service and will only be able to resolve hosts specified in
  566.             the \tcpip\etc\hosts file.  If the destination host isn't
  567.             specified in the hosts file, sendmail will reject your
  568.             message with error 68.
  569.  
  570.             The best way to avoid this is always to send outgoing mail
  571.             via a "smart" mail host and make sure that this host is
  572.             included in the hosts file.
  573.  
  574.     69      EX_UNAVAILABLE: a service is unavailable.  This can occur if
  575.             a support program or file does not exist.  This can also be
  576.             used as a catchall message when something you wanted to do
  577.             doesn't work, but you don't know why.
  578.  
  579.     70      EX_SOFTWARE: an internal software error has been detected.
  580.             This should be limited to non-operating system related errors
  581.             wherever possible.
  582.  
  583.     71      EX_OSERR: an operating system error has been detected.  This
  584.             is intended to be used for such things as "cannot fork",
  585.             "cannot create pipe", or the like.  It includes things like
  586.             getuid returning a user that does not exist in the passwd
  587.             file.
  588.  
  589.     72      EX_OSFILE: some system file (e.g. /etc/passwd, /etc/utmp,
  590.             etc.) does not exist, cannot be opened, or has some sort of
  591.             error (e.g. syntax error).
  592.  
  593.     73      EX_CANTCREATE: a (user specified) output file cannot be
  594.             created.
  595.  
  596.     74      EX_IOERR: an error occurred while doing I/O on some file.
  597.  
  598.     75      EX_TEMPFAIL: temporary failure, indicating something that is
  599.             not really an error.  In sendmail, this means that a mailer
  600.             (e.g.) could not create a connection, and the request should
  601.             be reattempted later.
  602.  
  603.     76      EX_PROTOCOL: the remote system returned something that was
  604.             "not possible" during a protocol exchange.
  605.  
  606.     77      EX_NOPERM: you did not have sufficient permission to perform
  607.             the operation.  This is not intended for file system problems
  608.             (which should use EX_NOINPUT or EX_CANTCREAT) but rather for
  609.             higher level permissions.
  610.  
  611.     78      EX_CONFIG: sendmail detected an error in its configuration
  612.             file (sendmail.cf or sendmail.uml).
  613.  
  614.  
  615.  
  616. 9. Frequently encountered problems (FEPs)
  617. -----------------------------------------
  618.  
  619. The most common problems encountered with sendmail are summarised below.
  620.  
  621.  
  622. After starting sendmail, it immediately exits with the message "TCP/IP
  623. not functioning; exit sendmail".
  624.  
  625.     Sendmail doesn't recognise that the TCP/IP is running.  This is
  626.     probably because the PPP/SLIP link is not running.  
  627.             
  628.     There have been some reports that the sendmail.exe supplied with Warp
  629.     cannot detect the TCP/IP stack provided by IBM TCP/IP v2.  The
  630.     solution is apparently to revert to the version of sendmail supplied
  631.     with IBM TCP/IP (it's sendmail v1.2.10).
  632.  
  633.  
  634. Sendmail produces lots of messages complaining about "invalid rewrite
  635. rules" when it starts up.
  636.  
  637.     The sendmail configuration file has been edited by a TAB-expanding
  638.     editor such as EPM.EXE.
  639.         
  640.  
  641. After sending a mail message, you receive a message from MAILER_DAEMON
  642. reporting a sendmail error 65.
  643.  
  644.     Sendmail couldn't connect to the destination host, even though it
  645.     thinks that the network is running.  The mail will be queued for
  646.     transmission later.
  647.  
  648.  
  649. After sending a mail message, you receive a message from MAILER_DAEMON
  650. reporting sendmail error 68.
  651.  
  652.     Sendmail can't resolve the IP address of the destination host,
  653.     usually because the DNS is unreachable (you're off-line) and the host
  654.     isn't in your hosts file.  The message will be bounced back to you.
  655.                 
  656.  
  657. Sendmail doesn't recognise incoming mail as destined for the local host.
  658. You never get any incoming mail, even though other SMTP packages on your
  659. system can receive mail.  People sending the mail to you receive error
  660. messages back from their mailers reporting failed delivery.
  661.  
  662.     This is the most frequently reported problem, accounting for 9 out of
  663.     10 problem reports.  The most likely cause is that the 'Cw' macro has
  664.     not been defined in the sendmail.uml file.  A possible other cause is
  665.     a wrapped or incorrectly defined 'Mlocal' line in sendmail.uml.
  666.  
  667.  
  668. Mail arrives but isn't delivered to the local mail program for you to
  669. read.  People sending the mail to you receive error messages back from
  670. their mailers reporting failed delivery
  671.  
  672.     The "Mlocal" line in the sendmail configuration file probably
  673.     specifies the wrong mail program or path.  A possible other cause is
  674.     an "Mlocal" line that has been wrapped over two lines by a helpful
  675.     editor.
  676.  
  677.  
  678. You never get any incoming mail, even though other SMTP packages on your
  679. system can receive mail.  What's more, the sendmail daemon is running and
  680. you can see the message coming in.  People sending the mail don't receive
  681. any error messages back from their mailers indicating a failed delivery.
  682.  
  683.     The most likely cause is that the path specifications in UltiMail/2's
  684.     umailsrv.pro file are not correct for your setup.  Details of running
  685.     and configuring UltiMail/2 Lite can be found in the accompanying
  686.     ultimail.txt file.
  687.  
  688.  
  689.  
  690. 10. What if it still doesn't work ?
  691. -----------------------------------
  692.  
  693. Unfortunately, there are many things that can go wrong with SMTP mail.
  694. The clues will usually be found in the log and error files created by
  695. sendmail:
  696.  
  697.     c:\tcpip\etc\sendmail.err
  698.     c:\tcpip\etc\sendmail.log
  699.     
  700. It is possible to make sendmail create large quantities of debugging
  701. information by starting it with the "-d" option rather than the "-d1.1"
  702. (see section 6).
  703.  
  704. If you contact me for help, be prepared for me to ask you to send me the
  705. files c:\tcpip\etc\sendmail.* as a UUencoded ZIP file.
  706.  
  707.  
  708.  
  709. 11. Useful references
  710. --------------------
  711.  
  712. Internet RFCs providing useful information about SMTP services and mail:
  713.  
  714.     RFC-822     Standard for the format of ARPA Internet text messages.
  715.     RFC-1123    Requirements for Internet hosts - application and support.  
  716.  
  717. RFCs are available by anonymous FTP from many sites, including:
  718.  
  719.     flash.bellcore.com:/pub/rfc
  720.     ftp.demon.co.uk:/pub/doc/rfc
  721.     gatekeeper.dec.com:/.3/net/info/rfc
  722.     munnari.oz.au:/rfc
  723.     nic.ddn.mil:/rfc
  724.     sunsite.doc.ic.ac.uk:/pub/rfc
  725.  
  726. "Sendmail" by Bryan Costales with Eric Allman & Neil Rickert.
  727. O'Reilly & Associates Inc.  ISBM 1-56592-056-2.
  728.  
  729.     An authoritative 800 page book on the internals of sendmail and its
  730.     configuration.  This book is a must if you want to understand and
  731.     hack sendmail configuration files, but otherwise it's probably a bit
  732.     too esoteric for general reading.
  733.  
  734. Sendmail source code has been released as part of the Berkeley Unix
  735. distribution.  It contains the authoritative documentation for sendmail,
  736. but it's really only for those who can't afford the sendmail book or find
  737. that it's missing some vital information.  The sendmail source code is
  738. available by anonymous FTP from many sites, including:
  739.  
  740.     ftp.demon.co.uk:/pub/BSD/4.4BSD-Lite/usr/src/usr.sbin/sendmail
  741.  
  742.  
  743.  
  744. 12. Change log
  745. --------------
  746.  
  747.     2.0 [05-Feb-1995] Niel Kempson <snowyowl.co.uk>
  748.         Initial version in the revised format.
  749.  
  750.     3.0 [16-Apr-1995] Niel Kempson <snowyowl.co.uk>
  751.         Further clarifications for some bits that evidently weren't clear
  752.         enough :-(
  753.  
  754. ********************************* END OF FILE ********************************
  755.