Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
SUBMIT(8)		     Double Precision, Inc.		       SUBMIT(8)

NAME
     submit - Submit a new message to the Courier mail server

SYNOPSIS
     /usr/local/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 process-
     ing.  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 in-
     stalled in the /usr/local/libexec/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 deliver-
	 able by any output protocol module. If so, submit will indicate a valid
	 address, and exit. Otherwise, submit prints a "User unknown" error mes-
	 sage, 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, deliv-
	 ery begins after waiting the amount of time specified by  the	/usr/lo-
	 cal/etc/courier/submitdelay  configuration  time (default: 0 seconds --
	 immediate delivery).

     -rfc3848=text
	 Specify the RFC 3848 transmission type label to be included in the mes-
	 sage'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  re-
     sponse) starts with a three-digit numerical code, a single space, and arbi-
     trary text. The first digit of the numerical code indicates whether the re-
     sponse indicates success, or failure. If the first digit is 5, the response
     indicates	a permanent failure. If the first digit is 4, the response indi-
     cates 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  ter-
     minated) 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,  op-
     tionally 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 de-
     livery status notifications should include the entire message,  'H'  speci-
     fies  just the headers of the message should be included. Absence of either
     'F' or 'H' specifies no preference. "S{keyword}" specifies the optional SE-
     CURITY extension keyword for this message. The 'V' character in format sets
     the VERP extension flag for this message. The '8' character is a flag indi-
     cating 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 deliv-
     ery status notifications. NOTE: envid must be specified using xtext  encod-
     ing (see the relevant RFCs).

     After  reading  the  first line of text, submit prints a response (see "RE-
     SPONSES FROM SUBMIT", above). If the response is a failure,  submit  termi-
     nates immediately. Otherwise, submit then reads one or more envelope recip-
     ients.

     Each envelope recipient is read as a single non-empty line of text, format-
     ted 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, ex-
     cept that is not encoded using xtext encoding, but in unencoded UTF-8.

     submit will print a response to each recipient (see  "RESPONSES  FROM  SUB-
     MIT", above). If at least one recipient address has been succesfully speci-
     fied,  a blank line is read to specify end of recipient list, which is fol-
     lowed 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 speci-
     fied. If so, submit obtains the list of recipient from the message's  head-
     ers.

     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 speci-
     fied 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/local/libexec/courier/modules/module/aliases.dat and
     /usr/local/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 envi-
	 ronment 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 enve-
	 lope  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 envi-
	 ronment 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 en-
	 vironment 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 mes-
	 sage, 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-Signa-
	 ture: 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 en-
	 coding; 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

Courier Mail Server		   01/22/2022			       SUBMIT(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=submit&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help