]> diplodocus.org Git - nmh/blob - man/post.man
Fix invalid pointer arithmetic.
[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
201 .B \-port
202 switches can be used to override the default mail server and port.
203 The default server is set with
204 .I servers
205 in
206 .IR %nmhetcdir%/mts.conf ,
207 and the default port is
208 .IR submission ,
209 587.
210 .PP
211 If
212 .B nmh
213 has been compiled with SASL support, the
214 .B \-sasl
215 and
216 .B \-nosasl
217 switches will enable and disable
218 the use of SASL authentication with the SMTP MTA. Depending on the
219 SASL mechanism used, this may require an additional password prompt from the
220 user (but the
221 .I netrc
222 file can be used to store this password, as described in
223 .IR mh-profile (5).
224 The
225 .B \-saslmech
226 switch can be used to select a particular SASL mechanism,
227 and the
228 .B \-user
229 switch can be used to select an authorization userid to provide to SASL,
230 other than the default. The credentials profile entry in
231 .IR mh-profile (5)
232 describes the ways to supply a username and password.
233 .PP
234 If SASL authentication is successful,
235 nmh
236 will attempt to negotiate a security layer for session encryption.
237 Encrypted data is labelled with `(sasl-encrypted)' and `(sasl-decrypted)' when
238 viewing the SMTP transaction with the
239 .B \-snoop
240 switch.
241 Base64-encoded data is wrapped with `b64<>'.
242 (Beware that the SMTP transaction may contain authentication information either
243 in plaintext or easily decoded base64.)
244 .PP
245 If
246 .B nmh
247 has been compiled with TLS support, the
248 .B \-tls
249 and
250 .B \-initialtls
251 switches will require the negotiation of TLS when connecting to the SMTP MTA.
252 The
253 .B \-tls
254 switch will negotiate TLS as part of the normal SMTP protocol
255 using the STARTTLS command. The
256 .B \-initialtls
257 will negotiate TLS immediately after the connection has
258 taken place, before any SMTP commands are sent or received. Encrypted data
259 is labelled with `(tls-encrypted)' and
260 `(tls-decrypted)' when viewing the SMTP transaction with the
261 .B \-snoop
262 switch.
263 Base64-encoded data is wrapped with `b64<>'.
264 (Beware that the SMTP transaction may contain authentication information either
265 in plaintext or easily decoded base64.)
266 The
267 .B \-notls
268 switch will disable all attempts to negotiate TLS.
269 .PP
270 If port 465 is specified and none of the TLS switches were enabled,
271 .B \-initialtls
272 will be implied if TLS support was compiled in. Though port 465 for
273 SMTPS (SMTP over SSL) was deregistered by IANA in 1998, it is still
274 used for that service.
275 .PP
276 .B post
277 filters out header lines with names beginning with \*(lqNmh-\*(rq
278 (case insensitive) from the message draft.
279 Those lines are reserved for internal
280 .B nmh
281 use.
282 .SH FILES
283 .fc ^ ~
284 .nf
285 .ta \w'%nmhetcdir%/ExtraBigFileName 'u
286 ^%nmhetcdir%/mts.conf~^nmh mts configuration file
287 ^%nmhetcdir%/MailAliases~^global nmh alias file
288 ^%bindir%/refile~^Program to process Fcc:s
289 ^%nmhlibexecdir%/mhl~^Program to process Bcc:s
290 .fi
291 .SH "PROFILE COMPONENTS"
292 .B post
293 does
294 .I not
295 consult the user's
296 .I \&.mh_profile
297 .SH "SEE ALSO"
298 .IR mhmail (1),
299 .IR send (1),
300 .IR mh\-mail (5),
301 .IR mh\-alias (5),
302 .IR mh\-profile (5),
303 .IR mh\-tailor (5)
304 .PP
305 .I "Standard for the Format of ARPA Internet Text Messages"
306 (RFC 822)
307 .SH DEFAULTS
308 .nf
309 .RB ` \-alias "' defaults to %nmhetcdir%/MailAliases"
310 .RB ` \-format '
311 .RB ` \-nomime '
312 .RB ` \-nomsgid '
313 .RB ` "\-messageid\ localname" '
314 .RB ` \-noverbose '
315 .RB ` \-nowatch '
316 .RB ` "\-width\ 72" '
317 .RB ` \-nofilter '
318 .fi
319 .SH CONTEXT
320 None
321 .SH BUGS
322 \*(lqReply\-To:\*(rq fields are allowed to have groups in them according
323 to the RFC 822 specification, but
324 .B post
325 won't let you use them.