Man Linux: Main Page and Category List


       submit - Submit a new message to the Courier mail server


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


       The submit program submits messages to the Courier mail server for
       processing. The submit program is not intended to be invoked by the end
       user. It is used by the Courier mail server 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:

           This argument identifies the module that´s running the submit
           command. It must be one of the module names that the Courier mail
           server 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:

           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

           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.

           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).

           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).


       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.


       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:


       <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 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.


       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.


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

           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.

           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

           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, the Courier mail server automatically
           xtext-encodes it).

           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.

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

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

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

           Normally the Courier mail server 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.


       courierpop3d(8)[1], couriertcpd(8)[2], authlib(7)[3].


        1. courierpop3d(8)
           [set $man.base.url.for.relative.links]/courierpop3d.html

        2. couriertcpd(8)
           [set $man.base.url.for.relative.links]/couriertcpd.html

        3. authlib(7)
           [set $man.base.url.for.relative.links]/authlib.html