Provided by: courier-mta_0.47-13ubuntu5_i386 bug

NAME

       submit - Submit a new message to Courier

SYNOPSIS

       /usr/bin/submit [ -expn=address ] [ -vrfy=address ] [ -bcc ] [ -delay=n
       ] module "type; hostid"

DESCRIPTION

       The submit program submits messages to  Courier  for  processing.   The
       submit  program  is  not intended to be invoked by the end user.  It is
       used by Courier input modules only. The submit  program’s  global  read
       and execute permissions are turned off, so that it can only be executed
       by a process that’s a member of the daemon group.  submit is  installed
       in the /usr/lib/courier/courier directory.

       submit always takes two command line arguments after any options:

       module This  argument  identifies  the module that’s running the submit
              command. It must be one of the module names that  Courier  knows
              about,  such  as  local,  or  esmtp.   This  argument determines
              address rewriting rules.

       "type; hostid"
              This single argument identifies the source of the  message,  and
              must  be  suitable for the Remote-MTA: header in delivery status
              notifications, as specified by RFC 1894. For messages  that  are
              received  via  ESMTP,  this argument is typically "dns; helohost
              (hostname [ip.address])".

       The submit program takes the following options:

       -expn=address
              Do not accept a message, instead "expand" the given address.  If
              the  specified  address  matches a locally-defined alias, submit
              prints the addresses this address expands to.  If the  specified
              address  does  not match a locally-defined alias, the address is
              displayed by itself.

       -vrvy=address
              Do not accept a  message,  instead  verify  the  given  address.
              submit  prints  a  suitable  message  and  sets the exit code to
              indicate whether the specified address is valid, or not. If  the
              address  matches  a  local  alias,  submit will indicate a valid
              address, and exit. If the address does not match a local  alias,
              submit  checks  if  this  address  is  deliverable by any output
              protocol module. If so, submit will indicate  a  valid  address,
              and  exit.  Otherwise,  submit  prints  a  "User  unknown" error
              message, and exits.

       -bcc   If no recipients are given, obtain the list of  recipients  from
              Bcc:  headers  only.  Normally,  if no recipients are specified,
              submit reads the list of recipients from the To:, Cc:  and  Bcc:
              headers  (Bcc:  headers  are  always  removed).  The -bcc option
              ignores To: and Cc: headers for this  purpose.  This  option  is
              ignored  if an explicit recipient list is specified (see below).

       -delay=n
              Wait n seconds before delivering the message. If not  specified,
              delivery  begins  after  waiting the amount of time specified by
              the  /etc/courier/submitdelay  configuration  time  (default:  0
              seconds -- immediate delivery).

RESPONSES FROM SUBMIT

       All replies from submit follow the format of SMTP responses, as defined
       in RFC822.

       To summarize: the responses are one or more lines long. Every  line  in
       the  response  instead  of  the  last  one  consists  of  a three-digit
       numerical code, a dash, then arbitrary text. The last line (or the only
       line  of  the  response)  starts  with  a three-digit numerical code, a
       single space, and arbitrary text.  The first  digit  of  the  numerical
       code  indicates  whether the response indicates success, or failure. If
       the first digit is 5, the response indicates a  permanent  failure.  If
       the  first  digit is 4, the response indicates a temporary failure (the
       message or the address should be resubmitted later). If the first digit
       is not 4 or 5, the response indicates success, or acceptance.

MESSAGE SUBMISSION

       Unless  either  -expn  or  -vrfy  option is specified, submit reads the
       message envelope and contents from  standard  input,  as  follows.  All
       input and output to submit consists of newline-terminated (NOT carriage
       return/newline terminated) lines of text.

       submit reads the first line  of  text,  which  specifies  the  envelope
       sender address. The line is formatted as follows:

       address<tab>format<tab>envid

       <tab>  is  the ASCII tab character. The address may be an empty string,
       optionally followed by tab, then "format", another tab, then "envid".

       format  is  one  or  more  chatacters  that  specify  delivery   status
       notification  processing,  and other message options. The ’F’ character
       specifies that delivery status notifications should include the  entire
       message,  ’H’  specifies  just  the  headers  of  the message should be
       included.  Absence of  either  ’F’  or  ’H’  specifies  no  preference.
       "S{keyword}" specifies the optional SECURITY extension keyword for this
       message. The ’V’ character in format sets the VERP extension  flag  for
       this message.

       envid  is  the  original message envelope ID, that will be shown on any
       delivery status notifications. NOTE:  envid  must  be  specified  using
       xtext encoding (see the relevant RFCs).

       After  reading  the  first  line of text, submit prints a response (see
       "RESPONSES FROM SUBMIT", above). If the response is a  failure,  submit
       terminates  immediately.  Otherwise,  submit  then  reads  one  or more
       envelope recipients.

       Each envelope recipient is read as a single  non-empty  line  of  text,
       formatted as follows:

       address<tab>dsn<tab>orecipient

       address is a non-empty recipient E-mail address, optionally followed by
       the tab character, then zero or more characters specifying dsn, then  a
       tab character, then the orecipient value.

       dsn  is  zero  or more of the following characters: S - send a delivery
       status notification upon a successful delivery to  this  address,  F  -
       send  a DSN upon a failed delivery, D - send a DSN upon a mail delay, N
       - never  send  a  DSN.  orecipient  is  the  "Original  Recipient",  as
       specified in RFC1894, using xtext encoding.

       submit  will  print  a  response to each recipient (see "RESPONSES FROM
       SUBMIT", above). If at least one recipient address has been succesfully
       specified, a blank line is read to specify end of recipient list, which
       is followed by the entire message, headers and body.

       A single blank line terminates the list of recipients. That is followed
       by the message itself, until end of file.

       The  blank  line  can  be  present before even a the first recipient is
       specified. If so,  submit  obtains  the  list  of  recipient  from  the
       message’s headers.

       submit  reads  the  message  headers and body until end-of-file.  Then,
       submit prints a response (see above), indicating  whether  or  not  the
       message was accepted for delivery, and terminates.

ADDRESS REWRITING

       Each  recipient address (whether specified explicitly, or obtained from
       the message headers), will be  rewritten  according  to  the  rewriting
       rules specified by the input module. Each address in the headers of the
       message will also be rewritten.

       After  rewriting  each  recipient  address,  submit  will  search   the
       aliases.dat  file  for  this address, to see if it represents a locally
       defined              alias.               Submit               searches
       /usr/lib/courier/courier/modules/module/aliases.dat                 and
       /etc/courier/aliases.dat (actual locations may be changed by the system
       administrator).  If the address is found, the recipient address will be
       replaced by the addresses defined in the aliases.dat file.

ENVIRONMENT VARIABLES

       submit also  reads  the  following  environment  variables  to  further
       specify how the message is to be processed:

       BLOCK  If this variable is set to a non-empty value, submit will reject
              every recipient (in effect, rejecting the message). The contents
              of the environment variable will be used as the error message.

       BOFHBADMIME
              Specifies  how  a  message with illegal MIME headers is handled.
              The possible values of this  environment  variable  are:  "wrap"
              (default)  -  reformat the message as an attachment that must be
              handled separately; "reject" - reject the  message;  "accept"  -
              accept the message.

       DSNENVID
              If  envid  is  not  specified, or is blank, and this environment
              variable is defined, the contents of this variable  is  used  as
              the  original  envelope id field for DSNs. Note that DSNENVID is
              copied verbatim into  the  Original-Envelope-Id  field  (if  the
              message  is relayed to another MTA, Courier automatically xtext-
              encodes it).

       DSNNOTIFY
              If the dsn field for a recipient is empty, the contents of  this
              environment  variable  is  used  in  its  place.  Also,  if  the
              recipient list is read from the headers, the  contents  of  this
              environment variable are used to set the dsn setting.

       DSNRET If  the  format field for this message is empty, the contents of
              this environment variable is used in its place.

       NOADDDATE
              Normally Courier adds a Date: header to the message, if it  does
              not  have one. If this environment variable is set, Courier will
              not add a Date: header.

       NOADDMSGID
              Normally Courier adds a Message-Id: header to the message, if it
              does  not  have it. If this environment variable is set, Courier
              will not add a Message-Id: header.

       MIME   Normally  Courier  adds  any  missing  RFC2045  headers  to  the
              message.  The  MIME  environment  variable  can  be  set  to the
              following values: none  -  do  not  do  any  RFC2045  processing
              whatsoever;  7bit  -  if  the  message  contains any 8-bit text,
              convert it to quoted-printable encoding; 8bit  -if  the  message
              contains   any   quoted-printable   encoded  text  that  can  be
              representing as 8bit-encoded  text,  then  convert  it  to  8bit
              encoding.

SEE ALSO

       courierpop3d(8), couriertcpd(8), authlib(7).