SMTPD(8)                                                 SMTPD(8)

NAME
       smtpd - Postfix SMTP server

SYNOPSIS
       smtpd [generic Postfix daemon options]

DESCRIPTION
       The  SMTP  server  accepts network connection requests and
       performs zero or more SMTP  transactions  per  connection.
       Each received message is piped through the cleanup(8) dae-
       mon, and is placed into the incoming queue as  one  single
       queue  file.   For  this  mode  of  operation, the program
       expects to be run from the master(8) process manager.

       Alternatively, the SMTP server takes an  established  con-
       nection  on  standard input and deposits messages directly
       into the maildrop queue.  In  this  so-called  stand-alone
       mode,  the SMTP server can accept mail even while the mail
       system is not running.

       The SMTP server implements a variety of policies for  con-
       nection  requests, and for parameters given to HELO, ETRN,
       MAIL FROM, VRFY and RCPT TO commands.  They  are  detailed
       below and in the main.cf configuration file.

SECURITY
       The SMTP server is moderately security-sensitive. It talks
       to SMTP clients and to DNS servers  on  the  network.  The
       SMTP server can be run chrooted at fixed low privilege.

STANDARDS
       RFC 821 (SMTP protocol)
       RFC 1123 (Host requirements)
       RFC 1652 (8bit-MIME transport)
       RFC 1869 (SMTP service extensions)
       RFC 1870 (Message Size Declaration)
       RFC 1985 (ETRN command)
       RFC 2554 (AUTH command)
       RFC 2821 (SMTP protocol)
       RFC 2920 (SMTP Pipelining)

DIAGNOSTICS
       Problems and transactions are logged to syslogd(8).

       Depending  on the setting of the notify_classes parameter,
       the postmaster is notified of bounces, protocol  problems,
       policy violations, and of other trouble.

CONFIGURATION PARAMETERS
       The  following  main.cf parameters are especially relevant
       to this program. See the Postfix main.cf file  for  syntax
       details  and  for  default  values. Use the postfix reload
       command after a configuration change.

Compatibility controls
       strict_rfc821_envelopes
              Disallow non-RFC 821 style addresses in  SMTP  com-
              mands.  For example, the RFC822-style address forms
              with comments that Sendmail allows.

       broken_sasl_auth_clients
              Support Microsoft clients that implement  an  older
              version  of  the  AUTH protocol, and that expect an
              EHLO response of "250 AUTH=list"  instead  of  "250
              AUTH list".

       smtpd_sasl_exceptions_networks
              Don't offer AUTH in the response to EHLO when talk-
              ing to clients in the specified networks.  This  is
              a  workaround  for clients that that demand a login
              and password from the user whenever AUTH is offered
              by an SMTP server.

       smtpd_noop_commands
              List of commands that are treated as NOOP (no oper-
              ation)  commands,  without  any  parameter   syntax
              checking  and  without any state change.  This list
              overrides built-in command definitions.

Content inspection after mail is queued
       Postfix can be configured to send new mail to an  external
       content filter AFTER the mail is queued.

       content_filter
              The  name of a mail delivery transport that filters
              mail and that either bounces mail or re-injects the
              result  back into Postfix.  This parameter uses the
              same syntax as the right-hand  side  of  a  Postfix
              transport table.

       receive_override_options
              The  following  options  override main.cf settings.
              The options are  either  implemented  by  the  SMTP
              server  or  are passed on to the downstream cleanup
              server.

              no_unknown_recipient_checks
                     Do not try  to  reject  unknown  recipients.
                     This  is  typically  specified with the SMTP
                     server after an external content filter.

              no_address_mappings
                     Disable canonical address  mapping,  virtual
                     alias  map  expansion, address masquerading,
                     and automatic BCC recipients. This is  typi-
                     cally  specified with the SMTP server before
                     an external content filter.

              no_header_body_checks
                     Disable header/body_checks.  This  is  typi-
                     cally  specified  with the SMTP server after
                     an external content filter.

Content inspection before mail is queued
       The Postfix SMTP server can be configured to  forward  all
       mail  to a real-time SMTP-based content filter BEFORE mail
       is queued.

       smtpd_proxy_filter
              The host:port of the real-time  SMTP-based  content
              filter.  The host or host: portion is optional.

       smtpd_proxy_timeout
              Timeout for connecting to, sending to and receiving
              from the real-time SMTP-based content filter.

       smtpd_proxy_ehlo
              The hostname to use when sending an EHLO command to
              the real-time SMTP-based content filter.

Authentication controls
       smtpd_sasl_auth_enable
              Enable  per-session  authentication as per RFC 2554
              (SASL).  This functionality is available only  when
              explicitly  selected  at  program  build  time  and
              explicitly enabled at runtime.

       smtpd_sasl_application_name
              The application name used for SASL server  initial-
              ization.   This  controls the name of the SASL con-
              figuration file.  The default value is smtpd,  cor-
              responding  to  a  SASL  configuration  file  named
              smtpd.conf.

       smtpd_sasl_local_domain
              The name of the local authentication realm.

       smtpd_sasl_security_options
              Zero or more of the following.

              noplaintext
                     Disallow  authentication  methods  that  use
                     plaintext passwords.

              noactive
                     Disallow  authentication  methods  that  are
                     vulnerable to non-dictionary active attacks.

              nodictionary
                     Disallow  authentication  methods  that  are
                     vulnerable to passive dictionary attack.

              noanonymous
                     Disallow anonymous logins.

       smtpd_sender_login_maps
              Maps that specify the SASL login names that  own  a
              MAIL    FROM    sender   address.   Used   by   the
              reject_sender_login_mismatch  sender  anti-spoofing
              restriction,  as  well as by its component restric-
              tions    reject_authenticated_sender_login_mismatch
              (an  authenticated  client  can't  use  a MAIL FROM
              sender address that is owned by someone  else)  and
              reject_unauthenticated_sender_login_mismatch     (a
              client must be authenticated in order  to  use  the
              MAIL FROM sender address).

Miscellaneous
       smtpd_authorized_verp_clients
              Hostnames, domain names and/or addresses of clients
              that are authorized to use the XVERP extension.

       smtpd_authorized_xclient_hosts
              Hostnames, domain names and/or addresses of clients
              that  are  authorized  to  use the XCLIENT command.
              This  command  overrides  client  information   for
              access  control  and  logging  purposes,  with  the
              exception  of  the   smtpd_authorized_xclient_hosts
              access control itself.

       smtpd_authorized_xforward_hosts
              Hostnames, domain names and/or addresses of clients
              that are authorized to use  the  XFORWARD  command.
              This command accepts client and message identofying
              information for logging purposes.

       debug_peer_level
              Increment in verbose logging level  when  a  remote
              host  matches  a  pattern  in  the  debug_peer_list
              parameter.

       debug_peer_list
              List of domain or network patterns. When  a  remote
              host  matches  a pattern, increase the verbose log-
              ging  level  by  the  amount   specified   in   the
              debug_peer_level parameter.

       default_verp_delimiters
              The default VERP delimiter characters that are used
              when  the  XVERP  command  is   specified   without
              explicit delimiters.

       error_notice_recipient
              Recipient    of   protocol/policy/resource/software
              error notices.

       hopcount_limit
              Limit the number of Received: message headers.

       notify_classes
              List of error classes. Of special interest are:

              policy When a client violates any  policy,  mail  a
                     transcript of the entire SMTP session to the
                     postmaster.

              protocol
                     When a client violates the SMTP protocol  or
                     issues  an  unimplemented  command,  mail  a
                     transcript of the entire SMTP session to the
                     postmaster.

       smtpd_banner
              Text  that  follows the 220 status code in the SMTP
              greeting banner.

       smtpd_expansion_filter
              Controls  what  characters  are  allowed  in  $name
              expansion of rbl template responses and other text.

       smtpd_recipient_limit
              Restrict the number of  recipients  that  the  SMTP
              server accepts per message delivery.

       smtpd_timeout
              Limit  the  time  to  send a server response and to
              receive a client request.

       soft_bounce
              Change hard (5xx) reject responses into soft  (4xx)
              reject  responses.   This can be useful for testing
              purposes.

       verp_delimiter_filter
              The characters that Postfix accepts as VERP  delim-
              iter characters.

Known versus unknown recipients
       show_user_unknown_table_name
              Whether  or  not  to  reveal  the table name in the
              "User unknown" responses. The  extra  detail  makes
              trouble  shooting  easier but also reveals informa-
              tion that is nobody elses business.

       unknown_local_recipient_reject_code
              The response code when a client specifies a recipi-
              ent    whose    domain    matches   $mydestination,
              $inet_interfaces   or   $proxy_interfaces,    while
              $local_recipient_maps  is  non-empty  and  does not
              list the recipient address or address local-part.

       unknown_relay_recipient_reject_code
              The response code when a client specifies a recipi-
              ent  whose  domain  matches  $relay_domains,  while
              $relay_recipient_maps is  non-empty  and  does  not
              list the recipient address.

       unknown_virtual_alias_reject_code
              The response code when a client specifies a recipi-
              ent whose  domain  matches  $virtual_alias_domains,
              while   the   recipient  is  not  listed  in  $vir-
              tual_alias_maps.

       unknown_virtual_mailbox_reject_code
              The response code when a client specifies a recipi-
              ent  whose domain matches $virtual_mailbox_domains,
              while the recipient is not listed in $virtual_mail-
              box_maps.

Resource controls
       line_length_limit
              Limit  the  amount  of memory in bytes used for the
              handling of partial input lines.

       message_size_limit
              Limit the total size in bytes of a message, includ-
              ing on-disk storage for envelope information.

       queue_minfree
              Minimal  amount of free space in bytes in the queue
              file system for the SMTP server to accept any  mail
              at   all  (default:  twice  the  message_size_limit
              value).

       smtpd_history_flush_threshold
              Flush  the  command  history  to  postmaster  after
              receipt of RSET etc.  only if the number of history
              lines exceeds the given threshold.

       smtpd_client_connection_count_limit
              The maximal number of simultaneous connections that
              any  client  is  allowed  to  make to this service.
              When a client exceeds the limit,  the  SMTP  server
              logs a warning with the client name/address and the
              service name as configured in master.cf.

       smtpd_client_connection_rate_limit
              The maximal number of  connections  per  unit  time
              (specified  with  client_rate_time_unit)  that  any
              client is allowed to make to this service.  When  a
              client  exceeds  the  limit, the SMTP server logs a
              warning with the client name/address and  the  ser-
              vice name as configured in master.cf.

       smtpd_client_connection_limit_exceptions
              Hostnames,  .domain  names  and/or  network address
              blocks of clients that are excluded from connection
              count or rate limits.

Tarpitting
       smtpd_error_sleep_time
              Time to wait in seconds before sending a 4xx or 5xx
              server error response.

       smtpd_soft_error_limit
              When an SMTP client has made this number of errors,
              wait  error_count  seconds before responding to any
              client request.

       smtpd_hard_error_limit
              Disconnect after a client has made this  number  of
              errors.

       smtpd_junk_command_limit
              Limit the number of times a client can issue a junk
              command such as NOOP, VRFY, ETRN  or  RSET  in  one
              SMTP  session  before  it  is penalized with tarpit
              delays.

Delegated policy
       smtpd_policy_service_timeout
              Time  limit  for  connecting  to,  writing  to  and
              receiving from a delegated SMTPD policy server.

       smtpd_policy_service_max_idle
              Time  after  which  an  unused SMTPD policy service
              connection is closed.

       smtpd_policy_service_timeout
              Time after which an  active  SMTPD  policy  service
              connection is closed.

UCE control restrictions
       parent_domain_matches_subdomains
              List  of  Postfix features that use domain.tld pat-
              terns  to  match  sub.domain.tld  (as  opposed   to
              requiring .domain.tld patterns).

       smtpd_client_restrictions
              Restrict what clients may connect to this mail sys-
              tem.

       smtpd_helo_required
              Require that clients introduce  themselves  at  the
              beginning of an SMTP session.

       smtpd_helo_restrictions
              Restrict  what client hostnames are allowed in HELO
              and EHLO commands.

       smtpd_sender_restrictions
              Restrict what sender addresses are allowed in  MAIL
              FROM commands.

       smtpd_recipient_restrictions
              Restrict  what  recipient  addresses are allowed in
              RCPT TO commands.

       smtpd_etrn_restrictions
              Restrict what domain names can be used in ETRN com-
              mands, and what clients may issue ETRN commands.

       smtpd_data_restrictions
              Restrictions  on  the  DATA command. Currently, the
              only  restriction  that   makes   sense   here   is
              reject_unauth_pipelining.

       allow_untrusted_routing
              Allow  untrusted  clients to specify addresses with
              sender-specified routing.  Enabling this  opens  up
              nasty  relay  loopholes involving trusted backup MX
              hosts.

       smtpd_restriction_classes
              Declares the name of zero or more  parameters  that
              contain  a  list  of UCE restrictions. The names of
              these parameters can then be used  instead  of  the
              restriction lists that they represent.

       smtpd_null_access_lookup_key
              The  lookup  key  to be used in SMTPD access tables
              instead of the null sender address. A  null  sender
              address cannot be looked up.

       maps_rbl_domains (deprecated)
              List  of  DNS domains that publish the addresses of
              blacklisted hosts. This is used with the deprecated
              reject_maps_rbl restriction.

       permit_mx_backup_networks
              Only  domains  whose  primary  MX  hosts  match the
              listed  networks  are   eligible   for   the   per-
              mit_mx_backup feature.

       relay_domains
              Restrict  what  domains this mail system will relay
              mail to. The domains are  routed  to  the  delivery
              agent specified with the relay_transport setting.

Sender/recipient address verification
       Address verification is implemented by sending probe email
       messages that are not actually delivered, and  is  enabled
       via    the   reject_unverified_{sender,recipient}   access
       restriction.  The status of verification probes  is  main-
       tained by the address verification service.

       address_verify_poll_count
              How  many  times  to query the address verification
              service for completion of an  address  verification
              request.   Specify  1 to implement a simple form of
              greylisting, that is, always defer the request  for
              a new sender or recipient address.

       address_verify_poll_delay
              Time  to  wait after querying the address verifica-
              tion service for completion of an address verifica-
              tion request.

UCE control responses
       access_map_reject_code
              Response  code  when  a  client  violates an access
              database restriction.

       default_rbl_reply
              Default template reply when a request is RBL black-
              listed.   This template is used by the reject_rbl_*
              and   reject_rhsbl_*   restrictions.   See    also:
              rbl_reply_maps and smtpd_expansion_filter.

       defer_code
              Response  code when a client request is rejected by
              the defer restriction.

       invalid_hostname_reject_code
              Response  code   when   a   client   violates   the
              reject_invalid_hostname restriction.

       maps_rbl_reject_code
              Response code when a request is RBL blacklisted.

       multi_recipient_bounce_reject_code
              Response  code  when  a  multi-recipient  bounce is
              blocked.

       rbl_reply_maps
              Table with template responses for  RBL  blacklisted
              requests,  indexed  by  RBL domain name. These tem-
              plates   are   used   by   the   reject_rbl_*   and
              reject_rhsbl_*      restrictions.     See     also:
              default_rbl_reply and smtpd_expansion_filter.

       reject_code
              Response code when  the  client  matches  a  reject
              restriction.

       relay_domains_reject_code
              Response code when a client attempts to violate the
              mail relay policy.

       unknown_address_reject_code
              Response  code   when   a   client   violates   the
              reject_unknown_address restriction.

       unknown_client_reject_code
              Response code when a client without address to name
              mapping violates the reject_unknown_client restric-
              tion.

       unknown_hostname_reject_code
              Response   code   when   a   client   violates  the
              reject_unknown_hostname restriction.

       unverified_sender_reject_code
              Response code when a sender address is known to  be
              undeliverable.

       unverified_recipient_reject_code
              Response  code when a recipient address is known to
              be undeliverable.

SEE ALSO
       cleanup(8) message canonicalization
       master(8) process manager
       syslogd(8) system logging
       trivial-rewrite(8) address resolver
       verify(8) address verification service

LICENSE
       The Secure Mailer license must be  distributed  with  this
       software.

AUTHOR(S)
       Wietse Venema
       IBM T.J. Watson Research
       P.O. Box 704
       Yorktown Heights, NY 10598, USA

                                                         SMTPD(8)