Current File : //var/qmail/man/cat8/qmail-smtpd.0


Maintenance Procedures                             qmail-smtpd(8)



NNNNAAAAMMMMEEEE
     qmail-smtpd - receive mail via SMTP

SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
     qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd

DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
     qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd receives  mail  messages  via  the  Simple  Mail
     Transfer  Protocol (SMTP) and invokes qqqqmmmmaaaaiiiillll----qqqquuuueeeeuuuueeee to deposit
     them into the outgoing queue.  qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd must be  supplied
     several environment variables; see ttttccccpppp----eeeennnnvvvviiiirrrroooonnnn((((5555)))).

     If the environment variable SSSSMMMMTTTTPPPPSSSS is non-empty,  qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd
     starts a TLS session (to support the deprecated SMTPS proto-
     col, normally on port 465).  Otherwise,  qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd  offers
     the STARTTLS extension to ESMTP.

     qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd is responsible for counting  hops.   It  rejects
     any message with 100 or more RRRReeeecccceeeeiiiivvvveeeedddd or DDDDeeeelllliiiivvvveeeerrrreeeedddd----TTTToooo header
     fields.

     qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd supports ESMTP, including  the  8BITMIME,  DATA,
     PIPELINING,  SIZE, and AUTH options.  qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd includes a
     'MAIL FROM:' parameter parser and obeys  'Auth'  and  'Size'
     advertisements.   qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd  can  accept LOGIN, PLAIN, and
     CRAM-MD5 AUTH types. It invokes _c_h_e_c_k_p_r_o_g_r_a_m, which reads on
     file  descriptor  3  the username, a 0 byte, the password or
     CRAM-MD5  digest/response  derived  from  the  SMTP  client,
     another  0  byte, a CRAM-MD5 challenge (if applicable to the
     AUTH type), and a final 0 byte.  _c_h_e_c_k_p_r_o_g_r_a_m  invokes  _s_u_b_-
     _p_r_o_g_r_a_m upon successful authentication, which should in turn
     return 0 to qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd, effectively setting the environment
     variables  $RELAYCLIENT  and  $TCPREMOTEINFO  (any  supplied
     value replaced with  the  authenticated  username).   qqqqmmmmaaaaiiiillll----
     ssssmmmmttttppppdddd  will reject the authentication attempt if it receives
     a nonzero return value from _c_h_e_c_k_p_r_o_g_r_a_m or _s_u_b_p_r_o_g_r_a_m.


TTTTRRRRAAAANNNNSSSSPPPPAAAARRRREEEENNNNCCCCYYYY
     qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd converts the SMTP newline  convention  into  the
     UNIX  newline  convention  by  converting CR LF into LF.  It
     returns a temporary error and drops the connection  on  bare
     LFs; see hhhhttttttttpppp::::////////ppppoooobbbbooooxxxx....ccccoooommmm////~~~~ddddjjjjbbbb////ddddooooccccssss////ssssmmmmttttppppllllffff....hhhhttttmmmmllll.

     qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd accepts messages  that  contain  long  lines  or
     non-ASCII  characters, even though such messages violate the
     SMTP protocol.

CCCCOOOONNNNTTTTRRRROOOOLLLL FFFFIIIILLLLEEEESSSS
     _b_a_d_h_e_l_o
          Unacceptable HELO/EHLO host  names.   qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd  will
          reject  every  recipient  address  for a message if the



SunOS 5.11                Last change:                          1






Maintenance Procedures                             qmail-smtpd(8)



          host name is listed in,  or  matches  a  POSIX  regular
          expression   pattern   listed   in,  _b_a_d_h_e_l_o.   If  the
          NNNNOOOOBBBBAAAADDDDHHHHEEEELLLLOOOO environment variable is set,  then  the  con-
          tents  of  _b_a_d_h_e_l_o  will be ignored.  For more informa-
          tion, please have a look at doc/README.qregex.

     _b_a_d_m_a_i_l_f_r_o_m
          Unacceptable envelope  sender  addresses.   qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd
          will  reject  every  recipient address for a message if
          the envelope sender address is listed in, or matches  a
          POSIX  regular  expression  pattern listed in, _b_a_d_m_a_i_l_-
          _f_r_o_m.  A line in _b_a_d_m_a_i_l_f_r_o_m may be of the form  @@@@_h_o_s_t,
          meaning  every  address at _h_o_s_t.  For more information,
          please have a look at doc/README.qregex.

     _b_a_d_m_a_i_l_f_r_o_m_n_o_r_e_l_a_y
          Functions the same as the _b_a_d_m_a_i_l_f_r_o_m control file  but
          is read only if the RRRREEEELLLLAAAAYYYYCCCCLLLLIIIIEEEENNNNTTTT environment variable is
          not set.  For more information, please have a  look  at
          doc/README.qregex.

     _b_a_d_m_a_i_l_t_o
          Unacceptable envelope recipient addresses.  qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd
          will  reject  every  recipient address for a message if
          the recipient address is listed in, or matches a  POSIX
          regular  expression  pattern listed in, _b_a_d_m_a_i_l_t_o.  For
          more   information,   please    have    a    look    at
          doc/README.qregex.

     _b_a_d_m_a_i_l_t_o_n_o_r_e_l_a_y
          Functions the same as the _b_a_d_m_a_i_l_t_o control file but is
          read  only  if  the RRRREEEELLLLAAAAYYYYCCCCLLLLIIIIEEEENNNNTTTT environment variable is
          not set.  For more information, please have a  look  at
          doc/README.qregex.


     _c_l_i_e_n_t_c_a._p_e_m
          A list of Certifying Authority (CA)  certificates  that
          are  used  to  verify the client-presented certificates
          during a TLS-encrypted session.


     _c_l_i_e_n_t_c_r_l._p_e_m
          A list  of  Certificate  Revocation  Lists  (CRLs).  If
          present  it  should  contain  the  CRLs  of  the CAs in
          _c_l_i_e_n_t_c_a._p_e_m and client certs will be checked for revo-
          cation.


     _d_a_t_a_b_y_t_e_s
          Maximum number of bytes allowed in a message, or 0  for
          no  limit.   Default:  0.   If  a  message exceeds this



SunOS 5.11                Last change:                          2






Maintenance Procedures                             qmail-smtpd(8)



          limit, qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd returns a permanent  error  code  to
          the  client; in contrast, if the disk is full or qqqqmmmmaaaaiiiillll----
          ssssmmmmttttppppdddd hits a resource limit, qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd returns a tem-
          porary error code.

          _d_a_t_a_b_y_t_e_s counts  bytes  as  stored  on  disk,  not  as
          transmitted through the network.  It does not count the
          qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd Received  line,  the  qqqqmmmmaaaaiiiillll----qqqquuuueeeeuuuueeee  Received
          line, or the envelope.

          If the environment variable DDDDAAAATTTTAAAABBBBYYYYTTTTEEEESSSS is set, it  over-
          rides _d_a_t_a_b_y_t_e_s.


     _d_h_1_0_2_4._p_e_m
          If these 1024 bit DH parameters  are  provided,  qqqqmmmmaaaaiiiillll----
          ssssmmmmttttppppdddd  will  use  them for TLS sessions instead of gen-
          erating one on-the-fly (which is very timeconsuming).

     _d_h_5_1_2._p_e_m
          512 bit counterpart for ddddhhhh1111000022224444....ppppeeeemmmm....


     _l_o_c_a_l_i_p_h_o_s_t
          Replacement host name for local IP addresses.  Default:
          _m_e,  if  that  is supplied.  qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd is responsible
          for  recognizing  dotted-decimal  addresses   for   the
          current  host.  When it sees a recipient address of the
          form  _b_o_x@[_d._d._d._d],  where  _d._d._d._d  is  a  local   IP
          address,  it replaces [_d._d._d._d] with _l_o_c_a_l_i_p_h_o_s_t.  This
          is done before _r_c_p_t_h_o_s_t_s.

     _m_o_r_e_r_c_p_t_h_o_s_t_s
          Extra  allowed  RCPT   domains.    If   _r_c_p_t_h_o_s_t_s   and
          _m_o_r_e_r_c_p_t_h_o_s_t_s  both exist, _m_o_r_e_r_c_p_t_h_o_s_t_s is effectively
          appended to _r_c_p_t_h_o_s_t_s.

          You  must  run  qqqqmmmmaaaaiiiillll----nnnneeeewwwwmmmmrrrrhhhh   whenever   _m_o_r_e_r_c_p_t_h_o_s_t_s
          changes.

          Rule of thumb for large sites:  Put your 50  most  com-
          monly  used  domains  into _r_c_p_t_h_o_s_t_s, and the rest into
          _m_o_r_e_r_c_p_t_h_o_s_t_s.

     _r_c_p_t_h_o_s_t_s
          Allowed  RCPT  domains.   If  _r_c_p_t_h_o_s_t_s  is   supplied,
          qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd  will reject any envelope recipient address
          with a domain not listed in _r_c_p_t_h_o_s_t_s.

          Exception:  If the environment variable RRRREEEELLLLAAAAYYYYCCCCLLLLIIIIEEEENNNNTTTT  is
          set, qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd will ignore _r_c_p_t_h_o_s_t_s, and will append
          the value of RRRREEEELLLLAAAAYYYYCCCCLLLLIIIIEEEENNNNTTTT  to  each  incoming  recipient



SunOS 5.11                Last change:                          3






Maintenance Procedures                             qmail-smtpd(8)



          address.

          _r_c_p_t_h_o_s_t_s may include wildcards:

             heaven.af.mil
             .heaven.af.mil

          Envelope recipient addresses without @ signs are always
          allowed through.


     _r_s_a_5_1_2._p_e_m
          If this 512 bit RSA key is provided,  qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd  will
          use  it  for TLS sessions instead of generating one on-
          the-fly.


     _s_e_r_v_e_r_c_e_r_t._p_e_m
          SSL certificate to be  presented  to  clients  in  TLS-
          encrypted sessions. Should contain both the certificate
          and the private  key.  Certifying  Authority  (CA)  and
          intermediate  certificates  can  be added at the end of
          the file.


     _s_m_t_p_g_r_e_e_t_i_n_g
          SMTP greeting message.  Default:  _m_e, if that  is  sup-
          plied;  otherwise  qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd will refuse to run.  The
          first word of _s_m_t_p_g_r_e_e_t_i_n_g should be the current host's
          name.

     _t_i_m_e_o_u_t_s_m_t_p_d
          Number of seconds qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd will wait  for  each  new
          buffer  of  data from the remote SMTP client.  Default:
          1200.

     _s_p_f_b_e_h_a_v_i_o_r
          Set to a value between 1 and 6 to enable SPF checks;  0
          to  disable.   1  selects  'annotate-only'  mode, where
          qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd   will   annotate   incoming   email   with
          RRRReeeecccceeeeiiiivvvveeeedddd----SSSSPPPPFFFF  fields, but will not reject any messages.
          2 will produce temporary failures on DNS  lookup  prob-
          lems  so  you  can make sure you always have meaningful
          Received-SPF headers.  3 selects 'reject'  mode,  where
          incoming  mail  will be rejected if the SPF record says
          'fail'.  4 selects  a  more  stricter  rejection  mode,
          which  is like 'reject' mode, except that incoming mail
          will also be rejected when the SPF record  says  'soft-
          fail'.   5  will  also  reject when the SPF record says
          'neutral', and 6 if no SPF records are available at all
          (or  a  syntax  error was encountered). The contents of
          this  file  are  overridden  by  the   value   of   the



SunOS 5.11                Last change:                          4






Maintenance Procedures                             qmail-smtpd(8)



          SSSSPPPPFFFFBBBBEEEEHHHHAAAAVVVVIIIIOOOORRRR environment variable, if set.  Default: 0.

     _s_p_f_e_x_p
          You can add a line with a an SPF explanation that  will
          be  shown  to  the  sender in case of a reject. It will
          override the default one. You can use SPF macro  expan-
          sion.

     _s_p_f_g_u_e_s_s
          You can add a line with SPF rules that will be  checked
          if a sender domain doesn't have a SPF record. The local
          rules will also be used in this case.

     _s_p_f_r_u_l_e_s
          You can add a line with SPF rules that will be  checked
          before other SPF rules would fail.  This can be used to
          always allow certain machines to send certain mails.

     _s_p_a_m_t
          The spam throttle parameters file.  See  qqqqmmmmaaaaiiiillll----nnnneeeewwwwsssstttt(8)
          and qqqqmmmmaaaaiiiillll----ssssppppaaaammmmtttt(5) for details.




     _t_l_s_c_l_i_e_n_t_s
          A list of  email  addresses.  When  relay  rules  would
          reject an incoming message, qqqqmmmmaaaaiiiillll----ssssmmmmttttppppdddd can allow it if
          the client presents a certificate that can be  verified
          against the CA list in _c_l_i_e_n_t_c_a._p_e_m and the certificate
          email address is in _t_l_s_c_l_i_e_n_t_s.


     _t_l_s_s_e_r_v_e_r_c_i_p_h_e_r_s
          A set of OpenSSL cipher strings. Multiple ciphers  con-
          tained  in  a string should be separated by a colon. If
          the environment variable TTTTLLLLSSSSCCCCIIIIPPPPHHHHEEEERRRRSSSS is set  to  such  a
          string, it takes precedence.


SSSSEEEEEEEE AAAALLLLSSSSOOOO
     tcp-env(1),   tcp-environ(5),    qmail-control(5),    qmail-
     spamt(5),   qmail-spamthrottle(5)   qmail-inject(8),  qmail-
     newmrh(8), qmail-newst(8), qmail-queue(8), qmail-remote(8)











SunOS 5.11                Last change:                          5