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

FreeBSD Manual Pages

  
 
  

home | help
SENDMAIL(1)		    General Commands Manual		   SENDMAIL(1)

NAME
       sendmail	- Postfix to Sendmail compatibility interface

SYNOPSIS
       sendmail	[option	...] [recipient	...]

       mailq
       sendmail	-bp

       newaliases
       sendmail	-I

DESCRIPTION
       The Postfix sendmail(1) command implements the Postfix to Sendmail com-
       patibility  interface.  For the sake of compatibility with existing ap-
       plications, some	 Sendmail  command-line	 options  are  recognized  but
       silently	ignored.

       By default, Postfix sendmail(1) reads a message from standard input un-
       til  EOF	or until it reads a line with only a . character, and arranges
       for delivery.  Postfix sendmail(1) relies on the	postdrop(1) command to
       create a	queue file in the maildrop directory.

       Specific	command	aliases	are provided for other common modes of	opera-
       tion:

       mailq  List the mail queue. Each	entry shows the	queue file ID, message
	      size,  arrival  time, sender, and	the recipients that still need
	      to be delivered.	If mail	could not be delivered upon  the  last
	      attempt, the reason for failure is shown.	The queue ID string is
	      followed by an optional status character:

	      *	     The  message  is in the active queue, i.e.	the message is
		     selected for delivery.

	      !	     The message is in the hold	queue, i.e. no further	deliv-
		     ery  attempt  will	 be  made  until the mail is taken off
		     hold.

	      #	     The message is forced to expire. See the postsuper(1) op-
		     tions -e or -f.

	      This  mode  of  operation	 is  implemented  by   executing   the
	      postqueue(1) command.

       newaliases
	      Initialize  the  alias  database.	 If no input file is specified
	      (with the	-oA option, see	 below),  the  program	processes  the
	      file(s)  specified with the alias_database configuration parame-
	      ter.  If no alias	database type is specified, the	 program  uses
	      the  type	specified with the default_database_type configuration
	      parameter.  This mode of operation is implemented	by running the
	      postalias(1) command.

	      Note: it may take	a minute or so before an alias database	update
	      becomes visible. Use the "postfix	reload"	command	 to  eliminate
	      this delay.

       These  and other	features can be	selected by specifying the appropriate
       combination of command-line options. Some features  are	controlled  by
       parameters in the main.cf configuration file.

       The following options are recognized:

       -Am (ignored)

       -Ac (ignored)
	      Postfix  sendmail	uses the same configuration file regardless of
	      whether or not a message is an initial submission.

       -B body_type
	      The message body MIME type: 7BIT or 8BITMIME.

       -bd    Go into daemon mode. This	mode of	operation  is  implemented  by
	      executing	the "postfix start" command.

       -bh (ignored)

       -bH (ignored)
	      Postfix has no persistent	host status database.

       -bi    Initialize alias database. See the newaliases command above.

       -bl    Go  into	daemon	mode. To accept	only local connections as with
	      Sendmail's -bl option, specify "inet_interfaces =	 loopback"  in
	      the Postfix main.cf configuration	file.

       -bm    Read mail	from standard input and	arrange	for delivery.  This is
	      the default mode of operation.

       -bp    List the mail queue. See the mailq command above.

       -bs    Stand-alone  SMTP	 server	mode. Read SMTP	commands from standard
	      input, and write responses to standard output.   In  stand-alone
	      SMTP  server  mode,  mail	relaying and other access controls are
	      disabled by default. To enable them,  run	 the  process  as  the
	      mail_owner user.

	      This  mode  of  operation	is implemented by running the smtpd(8)
	      daemon.

       -bv    Do not collect or	deliver	a message. Instead, send an email  re-
	      port after verifying each	recipient address.  This is useful for
	      testing address rewriting	and routing configurations.

	      This feature is available	in Postfix version 2.1 and later.

       -C config_file

       -C config_dir
	      The  path	name of	the Postfix main.cf file, or of	its parent di-
	      rectory. This information	is ignored with	Postfix	 versions  be-
	      fore 2.3.

	      With Postfix version 3.2 and later, a non-default	directory must
	      be  authorized  in  the default main.cf file, through the	alter-
	      nate_config_directories  or  multi_instance_directories  parame-
	      ters.

	      With  all	Postfix	versions, you can specify a directory pathname
	      with the MAIL_CONFIG environment variable	to override the	 loca-
	      tion of configuration files.

       -F full_name
	      Set  the	sender	full name. This	overrides the NAME environment
	      variable,	and is used only with messages that have no From: mes-
	      sage header.

       -f sender
	      Set the envelope sender address. This is the address  where  de-
	      livery  problems	are sent to. With Postfix versions before 2.1,
	      the Errors-To: message header overrides  the  error  return  ad-
	      dress.

       -G     Gateway  (relay)	submission, as opposed to initial user submis-
	      sion.  Either do not rewrite addresses at	all, or	update	incom-
	      plete  addresses	with the domain	information specified with re-
	      mote_header_rewrite_domain.

	      This option is ignored before Postfix version 2.3.

       -h hop_count (ignored)
	      Hop count	limit. Use the hopcount_limit configuration  parameter
	      instead.

       -I     Initialize alias database. See the newaliases command above.

       -i     When  reading  a message from standard input, don't treat	a line
	      with only	a . character as the end of input.

       -L label	(ignored)
	      The logging label. Use the syslog_name  configuration  parameter
	      instead.

       -m (ignored)
	      Backwards	compatibility.

       -N dsn (default:	'delay,	failure')
	      Delivery	 status	  notification	 control.   Specify  either  a
	      comma-separated list with	one or more of failure (send notifica-
	      tion when	delivery fails), delay (send notification when	deliv-
	      ery  is delayed),	or success (send notification when the message
	      is delivered); or	specify	never (don't send any notifications at
	      all).

	      This feature is available	in Postfix 2.3 and later.

       -n (ignored)
	      Backwards	compatibility.

       -oAalias_database
	      Non-default alias	database. Specify pathname  or	type:pathname.
	      See postalias(1) for details.

       -O option=value (ignored)
	      Set  the named option to value. Use the equivalent configuration
	      parameter	in main.cf instead.

       -o7 (ignored)

       -o8 (ignored)
	      To send 8-bit or binary content, use an appropriate MIME	encap-
	      sulation and specify the appropriate -B command-line option.

       -oi    When  reading  a message from standard input, don't treat	a line
	      with only	a . character as the end of input.

       -om (ignored)
	      The sender is never eliminated from alias	etc. expansions.

       -o x value (ignored)
	      Set option x to value. Use the equivalent	configuration  parame-
	      ter in main.cf instead.

       -r sender
	      Set  the	envelope sender	address. This is the address where de-
	      livery problems are sent to. With	Postfix	versions  before  2.1,
	      the  Errors-To:  message	header	overrides the error return ad-
	      dress.

       -R return
	      Delivery status notification control.  Specify "hdrs" to	return
	      only  the	header when a message bounces, "full" to return	a full
	      copy (the	default	behavior).

	      The -R option specifies an upper bound; Postfix will return only
	      the header, when a full copy would exceed	the  bounce_size_limit
	      setting.

	      This option is ignored before Postfix version 2.10.

       -q     Attempt  to deliver all queued mail. This	is implemented by exe-
	      cuting the postqueue(1) command.

	      Warning: flushing	undeliverable mail frequently will  result  in
	      poor delivery performance	of all other mail.

       -qinterval (ignored)
	      The interval between queue runs. Use the queue_run_delay config-
	      uration parameter	instead.

       -qIqueueid
	      Schedule immediate delivery of mail with the specified queue ID.
	      This  option  is	implemented by executing the postqueue(1) com-
	      mand, and	is available with Postfix version 2.4 and later.

       -qRsite
	      Schedule immediate delivery of all mail that is queued  for  the
	      named  site. This	option accepts only site names that are	eligi-
	      ble for the "fast	flush" service,	and is implemented by  execut-
	      ing the postqueue(1) command.  See flush(8) for more information
	      about the	"fast flush" service.

       -qSsite
	      This  command  is	 not implemented. Use the slower "sendmail -q"
	      command instead.

       -t     Extract recipients from message headers. These are added to  any
	      recipients specified on the command line.

	      With Postfix versions prior to 2.1, this option requires that no
	      recipient	addresses are specified	on the command line.

       -U (ignored)
	      Initial user submission.

       -V envid
	      Specify the envelope ID for notification by servers that support
	      DSN.

	      This feature is available	in Postfix 2.3 and later.

       -XV (Postfix 2.2	and earlier: -V)
	      Variable	Envelope Return	Path. Given an envelope	sender address
	      of the form owner-listname@origin,  each	recipient  user@domain
	      receives mail with a personalized	envelope sender	address.

	      By   default,   the  personalized	 envelope  sender  address  is
	      owner-listname+user=domain@origin. The default + and  =  charac-
	      ters  are	configurable with the default_verp_delimiters configu-
	      ration parameter.

       -XVxy (Postfix 2.2 and earlier: -Vxy)
	      As -XV, but uses x and y as the VERP delimiter  characters,  in-
	      stead  of	 the characters	specified with the default_verp_delim-
	      iters configuration parameter.

       -v     Send an email report of the first	delivery attempt (Postfix ver-
	      sions 2.1	and later). Mail delivery always happens in the	 back-
	      ground.  When multiple -v	options	are given, enable verbose log-
	      ging for debugging purposes.

       -X log_file (ignored)
	      Log mailer traffic. Use the debug_peer_list and debug_peer_level
	      configuration parameters instead.

SECURITY
       By design, this program is not set-user (or group) id.  It is  prepared
       to handle message content from untrusted, possibly remote, users.

       However,	 like  most  Postfix programs, this program does not enforce a
       security	policy on its command-line arguments.  Instead,	it  relies  on
       the  UNIX system	to enforce access policies based on the	effective user
       and group IDs of	the process. Concretely, this means that running Post-
       fix commands as root (from sudo or equivalent) on behalf	of a  non-root
       user is likely to create	privilege escalation opportunities.

       If  an application runs any Postfix programs on behalf of users that do
       not have	normal shell access to Postfix commands, then that application
       MUST restrict user-specified command-line arguments to avoid  privilege
       escalation.

             Filter  all  command-line	 arguments, for	example	arguments that
	      contain a	pathname or that specify  a  database  access  method.
	      These  pathname  checks  must reject user-controlled symlinks or
	      hardlinks	to sensitive files, and	must not be vulnerable to TOC-
	      TOU race attacks.

             Disable command options processing  for  all  command  arguments
	      that contain user-specified data.	For example, the Postfix send-
	      mail(1) command line MUST	be structured as follows:

		  /path/to/sendmail system-arguments --	user-arguments

	      Here,  the  "--"	disables  command  option  processing  for all
	      user-arguments that follow.

	      Without the "--",	a malicious user could	enable	Postfix	 send-
	      mail(1)  command	options,  by  specifying an email address that
	      starts with "-".

DIAGNOSTICS
       Problems	are logged to syslogd(8) or postlogd(8), and to	 the  standard
       error stream.

ENVIRONMENT
       MAIL_CONFIG
	      Directory	with Postfix configuration files.

       MAIL_VERBOSE (value does	not matter)
	      Enable verbose logging for debugging purposes.

       MAIL_DEBUG (value does not matter)
	      Enable debugging with an external	command, as specified with the
	      debugger_command configuration parameter.

       NAME   The  sender full name. This is used only with messages that have
	      no From: message header. See also	the -F option above.

CONFIGURATION PARAMETERS
       The following main.cf parameters	are especially relevant	to  this  pro-
       gram.   The  text  below	 provides  only	a parameter summary. See post-
       conf(5) for more	details	including examples.

COMPATIBILITY CONTROLS
       Available with Postfix 2.9 and later:

       sendmail_fix_line_endings (always)
	      Controls how the Postfix sendmail	command	converts email message
	      line endings from	<CR><LF> into UNIX format (<LF>).

TROUBLE	SHOOTING CONTROLS
       The DEBUG_README	file gives examples of how to troubleshoot  a  Postfix
       system.

       debugger_command	(empty)
	      The external command to execute when a Postfix daemon program is
	      invoked with the -D option.

       debug_peer_level	(2)
	      The  increment  in verbose logging level when a nexthop destina-
	      tion, remote client or server name or network address matches  a
	      pattern given with the debug_peer_list parameter.

       debug_peer_list (empty)
	      Optional	list  of  nexthop destination, remote client or	server
	      name or network address patterns that,  if  matched,  cause  the
	      verbose  logging	level  to  increase by the amount specified in
	      $debug_peer_level.

ACCESS CONTROLS
       Available in Postfix version 2.2	and later:

       authorized_flush_users (static:anyone)
	      List of users who	are authorized to flush	the queue.

       authorized_mailq_users (static:anyone)
	      List of users who	are authorized to view the queue.

       authorized_submit_users (static:anyone)
	      List of users who	are authorized to submit mail with  the	 send-
	      mail(1) command (and with	the privileged postdrop(1) helper com-
	      mand).

RESOURCE AND RATE CONTROLS
       bounce_size_limit (50000)
	      The  maximal  amount  of original	message	text that is sent in a
	      non-delivery notification.

       fork_attempts (5)
	      The maximal number of attempts to	fork() a child process.

       fork_delay (1s)
	      The delay	between	attempts to fork() a child process.

       hopcount_limit (50)
	      The maximal number of Received:  message headers that is allowed
	      in the primary message headers.

       queue_run_delay (300s)
	      The time between deferred	queue  scans  by  the  queue  manager;
	      prior to Postfix 2.4 the default value was 1000s.

FAST FLUSH CONTROLS
       The  ETRN_README	file describes configuration and operation details for
       the Postfix "fast flush"	service.

       fast_flush_domains ($relay_domains)
	      Optional list of destinations that are eligible for per-destina-
	      tion logfiles with mail that is queued to	those destinations.

VERP CONTROLS
       The VERP_README file describes configuration and	operation  details  of
       Postfix support for variable envelope return path addresses.

       default_verp_delimiters (+=)
	      The two default VERP delimiter characters.

       verp_delimiter_filter (-=+)
	      The  characters  Postfix accepts as VERP delimiter characters on
	      the Postfix sendmail(1) command line and in SMTP commands.

MISCELLANEOUS CONTROLS
       alias_database (see 'postconf -d' output)
	      The alias	databases for local(8) delivery	that are updated  with
	      "newaliases" or with "sendmail -bi".

       command_directory (see 'postconf	-d' output)
	      The location of all postfix administrative commands.

       config_directory	(see 'postconf -d' output)
	      The  default  location of	the Postfix main.cf and	master.cf con-
	      figuration files.

       daemon_directory	(see 'postconf -d' output)
	      The directory with Postfix support programs and daemon programs.

       default_database_type (see 'postconf -d'	output)
	      The default database type	for use	in newaliases(1), postalias(1)
	      and postmap(1) commands.

       delay_warning_time (0h)
	      The time after which the sender receives a copy of  the  message
	      headers of mail that is still queued.

       import_environment (see 'postconf -d' output)
	      The  list	 of  environment  variables  that a privileged Postfix
	      process will  import  from  a  non-Postfix  parent  process,  or
	      name=value environment overrides.

       mail_owner (postfix)
	      The  UNIX	 system	 account  that owns the	Postfix	queue and most
	      Postfix daemon processes.

       queue_directory (see 'postconf -d' output)
	      The location of the Postfix top-level queue directory.

       remote_header_rewrite_domain (empty)
	      Rewrite or add message headers in	mail from  remote  clients  if
	      the  remote_header_rewrite_domain	 parameter value is non-empty,
	      updating incomplete addresses with the domain specified  in  the
	      remote_header_rewrite_domain parameter, and adding missing head-
	      ers.

       syslog_facility (mail)
	      The syslog facility of Postfix logging.

       syslog_name (see	'postconf -d' output)
	      A	 prefix	 that  is  prepended  to  the  process	name in	syslog
	      records, so that,	for example, "smtpd" becomes "prefix/smtpd".

       Postfix 3.2 and later:

       alternate_config_directories (empty)
	      A	list of	non-default Postfix configuration directories that may
	      be specified with	"-c config_directory" on the command line  (in
	      the  case	 of  sendmail(1),  with	 the  "-C" option), or via the
	      MAIL_CONFIG environment parameter.

       multi_instance_directories (empty)
	      An optional list of non-default Postfix  configuration  directo-
	      ries;  these  directories	belong to additional Postfix instances
	      that share the Postfix executable	files and  documentation  with
	      the  default  Postfix  instance,	and that are started, stopped,
	      etc., together with the default Postfix instance.

FILES
       /var/spool/postfix, mail	queue
       /usr/local/etc/postfix, configuration files

SEE ALSO
       pickup(8), mail pickup daemon
       qmgr(8),	queue manager
       smtpd(8), SMTP server
       flush(8), fast flush service
       postsuper(1), queue maintenance
       postalias(1), create/update/query alias database
       postdrop(1), mail posting utility
       postfix(1), mail	system control
       postqueue(1), mail queue	control
       postlogd(8), Postfix logging
       syslogd(8), system logging

README_FILES
       Use "postconf readme_directory" or "postconf html_directory" to	locate
       this information.
       DEBUG_README, Postfix debugging howto
       ETRN_README, Postfix ETRN howto
       VERP_README, Postfix VERP howto

LICENSE
       The Secure Mailer license must be distributed with this software.

AUTHOR(S)
       Wietse Venema
       IBM T.J.	Watson Research
       P.O. Box	704
       Yorktown	Heights, NY 10598, USA

       Wietse Venema
       Google, Inc.
       111 8th Avenue
       New York, NY 10011, USA

								   SENDMAIL(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=sendmail&sektion=1&manpath=FreeBSD+14.3-RELEASE+and+Ports>

home | help