Provided by: courier-mta_1.0.16-3build5_amd64 bug

NAME

       submit - Submit a new message to the Courier mail server

SYNOPSIS

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

DESCRIPTION

       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 courier
       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 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:

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

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

       -rfc3848=text
           Specify the RFC 3848 transmission type label to be included in the message's
           “Received:” header

       -vhost=address
           Append “.address” to names of all configuration files Courier reads while processing
           this message.

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. The '8' character is a flag indicating that the
       message was received via SMTP with a SMTPUTF8 keyword, this prepends “UTF8” to the
       transmission type passed in via -rfc3848.

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

       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.  oreceipient is the "Original
       Recipient", as specified in RFC1894, except that is not encoded using xtext encoding, but
       in unencoded UTF-8.

       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.

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

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

       NOADDRREWRITE
           Normally the Courier mail server rewrites addresses in the From:, To:, and Cc: header
           fields. If this environment variable is set to 1, the Courier mail server will not
           rewrite them. If it is set to a higher value, the Courier mail server will only
           rewrite it if no DKIM-Signature: header field was found.

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

SEE ALSO

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

AUTHOR

       Sam Varshavchik
           Author

NOTES

        1. courierpop3d(8)
           http://www.courier-mta.org/courierpop3d.html

        2. couriertcpd(8)
           http://www.courier-mta.org/couriertcpd.html

        3. authlib(7)
           http://www.courier-mta.org/authlib.html