]> diplodocus.org Git - nmh/blob - man/post.man
Simplified m_strn() per Ralph's suggestions.
[nmh] / man / post.man
1 .TH POST %manext8% 2016-10-17 "%nmhversion%"
2 .
3 .\" %nmhwarning%
4 .
5 .SH NAME
6 post \- deliver an nmh message
7 .SH SYNOPSIS
8 .HP 5
9 .na
10 .B %nmhlibexecdir%/post
11 .RB [ \-help ]
12 .RB [ \-version ]
13 .RB [ \-alias
14 .IR aliasfile ]
15 .RB [ \-filter
16 .IR filterfile ]
17 .RB [ \-nofilter ]
18 .RB [ \-format " | " \-noformat ]
19 .RB [ \-mime " | " \-nomime ]
20 .RB [ \-msgid " | " \-nomsgid ]
21 .RB [ \-messageid
22 .IR localname " | " random ]
23 .RB [ \-verbose " | " \-noverbose ]
24 .RB [ \-watch " | " \-nowatch ]
25 .RB [ \-width
26 .IR columns ]
27 .RB [ \-mts
28 .IR smtp " | " sendmail/smtp " | " sendmail/pipe ]
29 .RB [ \-sendmail
30 .IR program ]
31 .RB [ \-server
32 .IR servername ]
33 .RB [ \-port
34 .IR portname/number ]
35 .RB [ \-sasl ]
36 .RB [ \-nosasl ]
37 .RB [ \-saslmech
38 .IR mechanism ]
39 .RB [ \-user
40 .IR username ]
41 .RB [ \-tls ]
42 .RB [ \-initialtls ]
43 .RB [ \-notls ]
44 .I file
45 .ad
46 .SH DESCRIPTION
47 .B post
48 is the default program called by
49 .B send
50 to deliver the message in
51 .I file
52 to local and remote users.
53 In fact, most of the features attributed to
54 .B send
55 in its manual page are performed by
56 .BR post ,
57 with
58 .B send
59 acting as a relatively simple preprocessor.
60 Thus, it is
61 .B post
62 which parses the various header fields, appends a
63 \*(lqDate:\*(rq line, and interacts with the mail transport system.
64 .B post
65 will not normally be called directly by the user, but can be replaced
66 by the user with a
67 .I postproc
68 profile component that will have
69 .I file
70 as its final argument.
71 See
72 .IR mh-profile (5)
73 for more information on postproc.
74 .PP
75 .B post
76 searches the \*(lqTo:\*(rq, \*(lqcc:\*(rq, \*(lqBcc:\*(rq,
77 \*(lqFcc:\*(rq, and \*(lqResent\-xxx:\*(rq header lines of the specified
78 message for destination addresses, checks these addresses for validity,
79 and formats them so as to conform to ARPAnet Internet Message Format
80 protocol, unless the
81 .B \-noformat
82 flag is set. This will normally cause
83 \*(lq@\fIlocal\-site\fR\*(rq to be appended to each local destination
84 address, as well as any local return addresses. The
85 .B \-width
86 .I columns
87 switch can be used to indicate the preferred length of the header
88 components that contain addresses.
89 .PP
90 If a \*(lqBcc:\*(rq field is encountered, its addresses will be used for
91 delivery, and the \*(lqBcc:\*(rq field will be removed from the message
92 sent to sighted recipients. The blind recipients will receive an entirely
93 new message with a minimal set of headers. Included in the body of the
94 message will be a copy of the message sent to the sighted recipients.
95 If
96 .B \-filter
97 .I filterfile
98 is specified, then this copy is filtered (re-formatted) by
99 .B mhl
100 prior to being sent to the blind recipients.
101 Alternately, if the
102 .B \-mime
103 switch is given, then
104 .B post
105 will use the MIME rules for encapsulation.
106 .PP
107 The
108 .B \-alias
109 .I aliasfile
110 switch can be used to specify a file that post should read aliases from.
111 More than one file can be specified, with each being preceded by
112 .BR \-alias .
113 In any event, the primary alias file is read first.
114 .PP
115 The
116 .B \-msgid
117 switch indicates that a \*(lqMessage\-ID:\*(rq or
118 \*(lqResent\-Message\-ID:\*(rq field should be added to the header.
119 .PP
120 The
121 .B \-messageid
122 switch selects the style used for the part appearing after the @
123 in \*(lqMessage\-ID:\*(rq, \*(lqResent\-Message\-ID:\*(rq, and
124 \*(lqContent\-ID:\*(rq header fields. The two acceptable options are
125 .B localname
126 (which is the default),
127 and
128 .BR random .
129 With
130 .BR localname ,
131 the local hostname is used. With
132 .BR random ,
133 a random sequence of characters is used instead. Note that the
134 .B \-msgid
135 switch must be enabled for this switch to have any effect.
136 .PP
137 The
138 .B \-verbose
139 switch indicates that the user should be informed of
140 each step of the posting/filing process.
141 .PP
142 The
143 .B \-watch
144 switch indicates that the user would like to watch the
145 transport system's handling of the message (e.g., local and \*(lqfast\*(rq
146 delivery).
147 .PP
148 Under normal circumstances,
149 .B post
150 uses the \*(lqFrom:\*(rq line in the message draft as the identity of
151 the originating mailbox. A \*(lqFrom:\*(rq line is required in
152 all message drafts. By default the message composition utilities such
153 as
154 .BR comp ,
155 .B repl
156 and
157 .B mhmail
158 will automatically place a \*(lqFrom:\*(rq line in the message draft.
159 There are two ways to override this behavior, however.
160 Note that they apply equally to \*(lqResent\-From:\*(rq lines in messages sent
161 with
162 .BR dist .
163 .PP
164 The first way is to supply a \*(lqSender:\*(rq line. The value of this
165 field will be used as the originating mailbox identity when submitting the
166 message to the mail transport system. If multiple addresses are
167 given in the \*(lqFrom:\*(rq line, a \*(lqSender:\*(rq line is
168 .BR required .
169 If an \*(lqEnvelope-From:\*(rq line is supplied when multiple addresses
170 are given in the \*(lqFrom:\*(rq line, a \*(lqSender:\*(rq header will
171 be generated using the value of the \*(lqEnvelope-From:\*(rq line,
172 .B if
173 the \*(lqEnvelope-From:\*(rq line is not blank.
174 .PP
175 The second way is to supply a \*(lqEnvelope-From:\*(rq line. The value
176 of this field will be used as the originating mailbox identity when
177 submitting the message to the mail transport system. This will override
178 both the value of the \*(lqFrom:\*(rq line and a \*(lqSender:\*(rq line
179 (if one is supplied). The \*(lqEnvelope-From:\*(rq line is allowed to
180 have a blank value; if the value is blank, then the mail transport system
181 will be instructed to not send any bounces in response to the message.
182 Not all mail transport systems support this feature.
183 .PP
184 The mail transport system default is defined in
185 .I %nmhetcdir%/mts.conf
186 but can be overridden here with the
187 .B \-mts
188 switch.
189 .PP
190 If nmh is using
191 .BR sendmail/pipe ,
192 as its mail transport system, the
193 .B \-sendmail
194 switch can be used to override the default
195 .B sendmail
196 program.
197 .PP
198 If nmh is using the SMTP MTA, the
199 .B \-server
200 and the
201 .B \-port
202 switches can be used to override the default mail server (defined by the
203 .RI servers
204 entry in
205 .I %nmhetcdir%/mts.conf
206 ).
207 .PP
208 If
209 .B nmh
210 has been compiled with SASL support, the
211 .B \-sasl
212 and
213 .B \-nosasl
214 switches will enable and disable
215 the use of SASL authentication with the SMTP MTA. Depending on the
216 SASL mechanism used, this may require an additional password prompt from the
217 user (but the
218 .I netrc
219 file can be used to store this password, as described in
220 .IR mh-profile (5).
221 The
222 .B \-saslmech
223 switch can be used to select a particular SASL mechanism,
224 and the
225 .B \-user
226 switch can be used to select an authorization userid to provide to SASL,
227 other than the default. The credentials profile entry in
228 .IR mh-profile (5)
229 describes the ways to supply a username and password.
230 .PP
231 If SASL authentication is successful,
232 .BR nmh
233 will attempt to negotiate a security layer for session encryption.
234 Encrypted data is labelled with `(sasl-encrypted)' and `(sasl-decrypted)' when
235 viewing the SMTP transaction with the
236 .B \-snoop
237 switch.
238 Base64-encoded data is wrapped with `b64<>'.
239 (Beware that the SMTP transaction may contain authentication information either
240 in plaintext or easily decoded base64.)
241 .PP
242 If
243 .B nmh
244 has been compiled with TLS support, the
245 .B \-tls
246 and
247 .B \-initialtls
248 switches will require the negotiation of TLS when connecting to the SMTP MTA.
249 The
250 .B \-tls
251 switch will negotiate TLS as part of the normal SMTP protocol
252 using the STARTTLS command. The
253 .B \-initialtls
254 will negotiate TLS immediately after the connection has
255 taken place, before any SMTP commands are sent or received. Encrypted data
256 is labelled with `(tls-encrypted)' and
257 `(tls-decrypted)' when viewing the SMTP transaction with the
258 .B \-snoop
259 switch.
260 Base64-encoded data is wrapped with `b64<>'.
261 (Beware that the SMTP transaction may contain authentication information either
262 in plaintext or easily decoded base64.)
263 The
264 .B \-notls
265 switch will disable all attempts to negotiate TLS.
266 .PP
267 If port 465 is specified and none of the TLS switches were enabled,
268 .B \-initialtls
269 will be implied if TLS support was compiled in. Though port 465 for
270 SMTPS (SMTP over SSL) was deregistered by IANA in 1998, it is still
271 used for that service.
272 .PP
273 .B post
274 filters out header lines with names beginning with \*(lqNmh-\*(rq
275 (case insensitive) from the message draft.
276 Those lines are reserved for internal
277 .B nmh
278 use.
279 .SH FILES
280 .fc ^ ~
281 .nf
282 .ta \w'%nmhetcdir%/ExtraBigFileName 'u
283 ^%nmhetcdir%/mts.conf~^nmh mts configuration file
284 ^%nmhetcdir%/MailAliases~^global nmh alias file
285 ^%bindir%/refile~^Program to process Fcc:s
286 ^%nmhlibexecdir%/mhl~^Program to process Bcc:s
287 .fi
288 .SH "PROFILE COMPONENTS"
289 .B post
290 does
291 .I not
292 consult the user's
293 .I \&.mh_profile
294 .SH "SEE ALSO"
295 .IR mhmail (1),
296 .IR send (1),
297 .IR mh\-mail (5),
298 .IR mh\-alias (5),
299 .IR mh\-profile (5),
300 .IR mh\-tailor (5)
301 .PP
302 .I "Standard for the Format of ARPA Internet Text Messages"
303 (RFC 822)
304 .SH DEFAULTS
305 .nf
306 .RB ` \-alias "' defaults to %nmhetcdir%/MailAliases"
307 .RB ` \-format '
308 .RB ` \-nomime '
309 .RB ` \-nomsgid '
310 .RB ` "\-messageid\ localname" '
311 .RB ` \-noverbose '
312 .RB ` \-nowatch '
313 .RB ` "\-width\ 72" '
314 .RB ` \-nofilter '
315 .fi
316 .SH CONTEXT
317 None
318 .SH BUGS
319 \*(lqReply\-To:\*(rq fields are allowed to have groups in them according
320 to the RFC 822 specification, but
321 .B post
322 won't let you use them.