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

FreeBSD Manual Pages

  
 
  

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
       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/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 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
	   /usr/local/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/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 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

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+14.3.quarterly>

home | help