X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/7b98850d3b8b2453b473fdfb6db52f4aa3fe39b6..06d6f04bc630070ced2537511e705a7dcbbf022c:/man/post.man diff --git a/man/post.man b/man/post.man index 892215a2..e49d10bf 100644 --- a/man/post.man +++ b/man/post.man @@ -1,14 +1,15 @@ -.\" +.TH POST %manext8% 2016-10-17 "%nmhversion%" +. .\" %nmhwarning% -.\" $Id$ -.\" -.TH POST %manext8% "%nmhdate%" MH.6.8 [%nmhversion%] +. .SH NAME -post \- deliver a message +post \- deliver an nmh message .SH SYNOPSIS .HP 5 .na -.B %libdir%/post +.B %nmhlibexecdir%/post +.RB [ \-help ] +.RB [ \-version ] .RB [ \-alias .IR aliasfile ] .RB [ \-filter @@ -17,28 +18,39 @@ post \- deliver a message .RB [ \-format " | " \-noformat ] .RB [ \-mime " | " \-nomime ] .RB [ \-msgid " | " \-nomsgid ] +.RB [ \-messageid +.IR localname " | " random ] .RB [ \-verbose " | " \-noverbose ] .RB [ \-watch " | " \-nowatch ] .RB [ \-width .IR columns ] +.RB [ \-mts +.IR smtp " | " sendmail/smtp " | " sendmail/pipe ] +.RB [ \-sendmail +.IR program ] +.RB [ \-server +.IR servername ] +.RB [ \-port +.IR portname/number ] .RB [ \-sasl ] +.RB [ \-nosasl ] .RB [ \-saslmech .IR mechanism ] .RB [ \-user .IR username ] +.RB [ \-tls ] +.RB [ \-initialtls ] +.RB [ \-notls ] .I file -.RB [ \-version ] -.RB [ \-help ] .ad .SH DESCRIPTION -.B Post +.B post is the default program called by .B send -to deliver -the message in +to deliver the message in .I file -to local and remote users. In fact, most of -the features attributed to +to local and remote users. +In fact, most of the features attributed to .B send in its manual page are performed by .BR post , @@ -47,12 +59,20 @@ with acting as a relatively simple preprocessor. Thus, it is .B post -which parses the various header fields, appends -\*(lqFrom:\*(rq and \*(lqDate:\*(rq lines, and interacts with the mail transport system. -.B Post -will not normally be called directly by the user. +which parses the various header fields, appends a +\*(lqDate:\*(rq line, and interacts with the mail transport system. +.B post +will not normally be called directly by the user, but can be replaced +by the user with a +.I postproc +profile component that will have +.I file +as its final argument. +See +.IR mh-profile (5) +for more information on postproc. .PP -.B Post +.B post searches the \*(lqTo:\*(rq, \*(lqcc:\*(rq, \*(lqBcc:\*(rq, \*(lqFcc:\*(rq, and \*(lqResent\-xxx:\*(rq header lines of the specified message for destination addresses, checks these addresses for validity, @@ -75,26 +95,22 @@ message will be a copy of the message sent to the sighted recipients. If .B \-filter .I filterfile -is specified, then this copy is filtered -(re\-formatted) by +is specified, then this copy is filtered (re-formatted) by .B mhl prior to being sent to the blind recipients. Alternately, if the .B \-mime switch is given, then .B post -will use -the MIME rules for encapsulation. +will use the MIME rules for encapsulation. .PP The .B \-alias .I aliasfile -switch can be used to specify a file that post -should take aliases from. More than one file can be specified, each -being preceded with +switch can be used to specify a file that post should read aliases from. +More than one file can be specified, with each being preceded by .BR \-alias . -In any event, the primary alias file is -read first. +In any event, the primary alias file is read first. .PP The .B \-msgid @@ -102,6 +118,23 @@ switch indicates that a \*(lqMessage\-ID:\*(rq or \*(lqResent\-Message\-ID:\*(rq field should be added to the header. .PP The +.B \-messageid +switch selects the style used for the part appearing after the @ +in \*(lqMessage\-ID:\*(rq, \*(lqResent\-Message\-ID:\*(rq, and +\*(lqContent\-ID:\*(rq header fields. The two acceptable options are +.B localname +(which is the default), +and +.BR random . +With +.BR localname , +the local hostname is used. With +.BR random , +a random sequence of characters is used instead. Note that the +.B \-msgid +switch must be enabled for this switch to have any effect. +.PP +The .B \-verbose switch indicates that the user should be informed of each step of the posting/filing process. @@ -114,147 +147,181 @@ delivery). .PP Under normal circumstances, .B post -constructs the \*(lqFrom:\*(rq line of the -message from the user's login name, the full name from the GECOS field of the -passwd file, and the fully\-qualified name of the local machine (or the -value of -\*(lqlocalname\*(rq in -.IR mts.conf , -if set). An example is \*(lqFrom: Dan Harkless -\*(rq. There are four ways to override these values, -however. Note that they apply equally to \*(lqResent\-From:\*(rq lines in messages sent +uses the \*(lqFrom:\*(rq line in the message draft as the identity of +the originating mailbox. A \*(lqFrom:\*(rq line is required in +all message drafts. By default the message composition utilities such +as +.BR comp , +.B repl +and +.B mhmail +will automatically place a \*(lqFrom:\*(rq line in the message draft. +There are two ways to override this behavior, however. +Note that they apply equally to \*(lqResent\-From:\*(rq lines in messages sent with .BR dist . .PP -The first way is GECOS\-based username masquerading. If the \*(lqmasquerade:\*(rq line -in -.I mts.conf -contains \*(lqmmailid\*(rq, this processing is activated. If a user's GECOS -field in the passwd file is of the form \*(lqFull Name \*(rq then \*(lqfakename\*(rq -will be used in place of the real username. For instance, a GECOS field of \*(lqDan -Harkless \*(rq would result in \*(lqFrom: Dan Harkless -\*(rq. Naturally if you were doing something like -this you'd want to set up an MTA alias (e.g. in /etc/aliases) from, for -instance, \*(lqDan.Harkless\*(rq to \*(lqdan\*(rq. +The first way is to supply a \*(lqSender:\*(rq line. The value of this +field will be used as the originating mailbox identity when submitting the +message to the mail transport system. If multiple addresses are +given in the \*(lqFrom:\*(rq line, a \*(lqSender:\*(rq line is +.BR required . +If an \*(lqEnvelope-From:\*(rq line is supplied when multiple addresses +are given in the \*(lqFrom:\*(rq line, a \*(lqSender:\*(rq header will +be generated using the value of the \*(lqEnvelope-From:\*(rq line, +.B if +the \*(lqEnvelope-From:\*(rq line is not blank. .PP -The second way to override default construction of \*(lqFrom:\*(rq is to set the -.B $SIGNATURE -environment variable. This variable overrides the full name -from the GECOS field, even if GECOS\-based masquerading is being done. This -processing is always active, and does not need to be enabled from -.IR mts.conf . +The second way is to supply a \*(lqEnvelope-From:\*(rq line. The value +of this field will be used as the originating mailbox identity when +submitting the message to the mail transport system. This will override +both the value of the \*(lqFrom:\*(rq line and a \*(lqSender:\*(rq line +(if one is supplied). The \*(lqEnvelope-From:\*(rq line is allowed to +have a blank value; if the value is blank, then the mail transport system +will be instructed to not send any bounces in response to the message. +Not all mail transport systems support this feature. .PP -The third way is controlled by the \*(lquser_extension\*(rq value of \*(lqmasquerade:\*(rq line -of -.IR mts.conf . -When that's turned on, setting the -.B $USERNAME_EXTENSION -environment variable will result in its value being appended the user's login -name. For instance, if I set -.B $USERNAME_EXTENSION -to \*(lq+www\*(rq, my \*(lqFrom:\*(rq -line will contain \*(lqDan Harkless \*(rq (or -\*(lqDan.Harkless+www\*(rq if I'm using mmailid masquerading as well). Recent versions -of -.B sendmail -automatically deliver all mail sent to -.IR user + string -to -.IR user . -.B qmail -has a similar feature which uses '\-' as the delimiter by -default, but can use other characters as well. +The mail transport system default is defined in +.I %nmhetcdir%/mts.conf +but can be overridden here with the +.B \-mts +switch. .PP -The fourth method of address masquerading is to specify a \*(lqFrom:\*(rq line manually -in the message draft. It will be used as provided (after alias substitution), -but normally, to discourage email forgery, the user's -.B real -address will be -used in the SMTP envelope \*(lqFrom:\*(rq and in a \*(lqSender:\*(rq header. However, if the -\*(lqmasquerade:\*(rq line of -.I mts.conf -contains \*(lqdraft_from\*(rq, the SMTP envelope \*(lqFrom:\*(rq -will use the address given in the draft \*(lqFrom:\*(rq, and there will be no \*(lqSender:\*(rq -header. This is useful in pretending to send mail \*(lqdirectly\*(rq from a remote POP3 -account, or when remote email robots give improper precedence to the envelope -\*(lqFrom:\*(rq. Note that your MTA may still reveal your real identity (e.g. -.BR sendmail 's -\*(lqX\-Authentication\-Warning:\*(rq header). +If nmh is using +.B sendmail/pipe +or +.B sendmail/smtp +as its mail transport system, the +.B \-sendmail +switch can be used to override the default +.B sendmail +program. .PP If nmh is using the SMTP MTA, the .B \-server -and the +and .B \-port -switches can be used to override the default mail server (defined by the -.RI servers -entry in -.I %etcdir%/mts.conf -). +switches can be used to override the default mail server and port. +The default server is set with +.I servers +in +.IR %nmhetcdir%/mts.conf , +and the default port is +.IR submission , +587. .PP If .B nmh has been compiled with SASL support, the .B \-sasl -switch will enable +and +.B \-nosasl +switches will enable and disable the use of SASL authentication with the SMTP MTA. Depending on the SASL mechanism used, this may require an additional password prompt from the user (but the -.RI \*(lq \&.netrc \*(rq -file can be used to store this password). +.I netrc +file can be used to store this password, as described in +.IR mh-profile (5). +The .B \-saslmech switch can be used to select a particular SASL mechanism, -and the the +and the .B \-user -switch can be used to select a authorization userid -to provide to SASL other than the default. +switch can be used to select an authorization userid to provide to SASL, +other than the default. The credentials profile entry in +.IR mh-profile (5) +describes the ways to supply a username and password. .PP -If SASL authentication is successful, -.BR nmh +If SASL authentication is successful, +nmh will attempt to negotiate a security layer for session encryption. -Encrypted data is labelled with `(encrypted)' and `(decrypted)' when +Encrypted data is labelled with `(sasl-encrypted)' and `(sasl-decrypted)' when viewing the SMTP transaction with the .B \-snoop switch. - +Base64-encoded data is wrapped with `b64<>'. +(Beware that the SMTP transaction may contain authentication information either +in plaintext or easily decoded base64.) +.PP +If +.B nmh +has been compiled with TLS support, the +.B \-tls +and +.B \-initialtls +switches will require the negotiation of TLS when connecting to the SMTP MTA. +The +.B \-tls +switch will negotiate TLS as part of the normal SMTP protocol +using the STARTTLS command. The +.B \-initialtls +will negotiate TLS immediately after the connection has +taken place, before any SMTP commands are sent or received. Encrypted data +is labelled with `(tls-encrypted)' and +`(tls-decrypted)' when viewing the SMTP transaction with the +.B \-snoop +switch. +Base64-encoded data is wrapped with `b64<>'. +(Beware that the SMTP transaction may contain authentication information either +in plaintext or easily decoded base64.) +The +.B \-notls +switch will disable all attempts to negotiate TLS. +.PP +If port 465 is specified and none of the TLS switches were enabled, +.B \-initialtls +will be implied if TLS support was compiled in. Though port 465 for +SMTPS (SMTP over SSL) was deregistered by IANA in 1998, it is still +used for that service. +.PP +.B post +filters out header lines with names beginning with \*(lqNmh-\*(rq +(case insensitive) from the message draft. +Those lines are reserved for internal +.B nmh +use. .SH FILES .fc ^ ~ .nf -.ta \w'%etcdir%/ExtraBigFileName 'u -^%etcdir%/mts.conf~^nmh mts configuration file -^%etcdir%/MailAliases~^global nmh alias file +.ta \w'%nmhetcdir%/ExtraBigFileName 'u +^%nmhetcdir%/mts.conf~^nmh mts configuration file +^%nmhetcdir%/MailAliases~^global nmh alias file ^%bindir%/refile~^Program to process Fcc:s -^%libdir%/mhl~^Program to process Bcc:s +^%nmhlibexecdir%/mhl~^Program to process Bcc:s .fi - .SH "PROFILE COMPONENTS" .B post does -.B NOT +.I not consult the user's -.I \&.mh\(ruprofile - +.I \&.mh_profile .SH "SEE ALSO" -mhmail(1), send(1), mh\-mail(5), mh\-alias(5), mh\-tailor(5), +.IR mhmail (1), +.IR send (1), +.IR mh\-mail (5), +.IR mh\-alias (5), +.IR mh\-profile (5), +.IR mh\-tailor (5) +.PP .I "Standard for the Format of ARPA Internet Text Messages" -(RFC\-822) - +(RFC 822) .SH DEFAULTS .nf -.RB ` \-alias "' defaults to %etcdir%/MailAliases" +.RB ` \-alias "' defaults to %nmhetcdir%/MailAliases" .RB ` \-format ' .RB ` \-nomime ' .RB ` \-nomsgid ' +.RB ` "\-messageid\ localname" ' .RB ` \-noverbose ' .RB ` \-nowatch ' .RB ` "\-width\ 72" ' .RB ` \-nofilter ' .fi - .SH CONTEXT None - .SH BUGS \*(lqReply\-To:\*(rq fields are allowed to have groups in them according -to the 822 specification, but +to the RFC 822 specification, but .B post won't let you use them.