694c3aeffe54947bc75d98aa456372c4f5f84b32
[dragonfly.git] / libexec / dma / dma.8
1 .\"
2 .\" Copyright (c) 2008
3 .\"     The DragonFly Project.  All rights reserved.
4 .\"
5 .\" Redistribution and use in source and binary forms, with or without
6 .\" modification, are permitted provided that the following conditions
7 .\" are met:
8 .\"
9 .\" 1. Redistributions of source code must retain the above copyright
10 .\"    notice, this list of conditions and the following disclaimer.
11 .\" 2. Redistributions in binary form must reproduce the above copyright
12 .\"    notice, this list of conditions and the following disclaimer in
13 .\"    the documentation and/or other materials provided with the
14 .\"    distribution.
15 .\" 3. Neither the name of The DragonFly Project nor the names of its
16 .\"    contributors may be used to endorse or promote products derived
17 .\"    from this software without specific, prior written permission.
18 .\"
19 .\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 .\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22 .\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
23 .\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24 .\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
25 .\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26 .\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27 .\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28 .\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
29 .\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 .\" SUCH DAMAGE.
31 .\"
32 .Dd April 22, 2010
33 .Dt DMA 8
34 .Os
35 .Sh NAME
36 .Nm dma
37 .Nd DragonFly Mail Agent
38 .Sh SYNOPSIS
39 .Nm
40 .Op Fl DiOt
41 .Op Fl A Ns Ar mode
42 .Op Fl b Ns Ar mode
43 .Op Fl f Ar sender
44 .Op Fl L Ar tag
45 .Op Fl o Ns Ar option
46 .Op Fl r Ar sender
47 .Op Fl q Ns Op Ar arg
48 .Op Ar recipient ...
49 .Sh DESCRIPTION
50 .Nm
51 is a small Mail Transport Agent (MTA), designed for home and office use.
52 It accepts mails from locally installed Mail User Agents (MUA) and
53 delivers the mails either locally or to a remote destination.
54 Remote delivery includes several features like TLS/SSL support and SMTP
55 authentication.
56 .Pp
57 .Nm
58 is not intended as a replacement for real, big MTAs like
59 .Xr sendmail 8
60 or
61 .Xr postfix 1 .
62 Consequently,
63 .Nm
64 does not listen on port 25 for incoming connections.
65 .Pp
66 The options are as follows:
67 .Bl -tag -width indent
68 .It Fl A Ns Ar mode
69 .Fl \&Ac
70 acts as a compatibility option for sendmail.
71 .It Fl b Ns Ar mode
72 .Bl -tag -width indent
73 .It Fl bp
74 List all mails currently stored in the mail queue.
75 .It Fl bq
76 Queue the mail, but don't attempt to deliver it.
77 See also the
78 .Sq DEFER
79 config file setting below.
80 .El
81 .Pp
82 All other
83 .Ar mode Ns
84 s are are ignored.
85 .It Fl D
86 Don't run in the background.
87 Useful for debugging.
88 .It Fl f Ar sender
89 Set sender address (envelope-from) to
90 .Ar sender .
91 This overrides the value of the environment variable
92 .Ev EMAIL .
93 .It Fl i
94 Ignore dots alone on lines by themselves in incoming messages.
95 This should be set if you are reading data from a file.
96 .It Fl L Ar tag
97 Set the identifier used in syslog messages to the supplied
98 .Ar tag .
99 This is a compatibility option for sendmail.
100 .It Fl O
101 This is a compatibility option for sendmail.
102 .It Fl o Ns Ar option
103 Specifying
104 .Fl oi
105 is synonymous to
106 .Fl i .
107 All other options are ignored.
108 .It Fl q Ns Op Ar arg
109 Process saved messages in the queue.
110 The argument is optional and ignored.
111 .It Fl r Ar sender
112 Same as
113 .Fl f .
114 .It Fl t
115 Obtain recipient addresses from the message header.
116 .Nm
117 will parse the
118 .Li To: ,
119 .Li Cc: ,
120 and
121 .Li Bcc:
122 headers.
123 The
124 .Li Bcc:
125 header will be removed independent of whether
126 .Fl t
127 is specified or not.
128 .El
129 .Sh CONFIGURATION
130 .Nm
131 can be configured with three config files:
132 .Pp
133 .Bl -bullet -compact
134 .It
135 auth.conf
136 .It
137 dma.conf
138 .El
139 .Pp
140 These three files are stored per default in
141 .Pa /etc/dma .
142 .Sh FILE FORMAT
143 Every file contains parameters of the form
144 .Sq name value .
145 Lines containing boolean values are set to
146 .Sq NO
147 if the line is commented and to
148 .Sq YES
149 if the line is uncommented.
150 Empty lines or lines beginning with a
151 .Sq #
152 are ignored.
153 Parameter names and their values are case sensitive.
154 .Sh PARAMETERS
155 .Ss auth.conf
156 SMTP authentication can be configured in
157 .Pa auth.conf .
158 Each line has the format
159 .Dq Li user|smarthost:password .
160 .Ss dma.conf
161 Most of the behaviour of
162 .Nm
163 can be configured in
164 .Pa dma.conf .
165 .Bl -tag -width 4n
166 .It Ic SMARTHOST Xo
167 (string, default=empty)
168 .Xc
169 If you want to send outgoing mails via a smarthost, set this variable to
170 your smarthosts address.
171 .It Ic PORT Xo
172 (numeric, default=25)
173 .Xc
174 Use this port to deliver remote emails.
175 Only useful together with the
176 .Sq SMARTHOST
177 option, because
178 .Nm
179 will deliver all mails to this port, regardless of whether a smarthost is set
180 or not.
181 .It Ic ALIASES Xo
182 (string, default=/etc/aliases)
183 .Xc
184 Path to the local aliases file.
185 Just stick with the default.
186 The aliases file is of the format
187 .Dl nam: dest1 dest2 ...
188 In this case, mails to
189 .Li nam
190 will instead be delivered to
191 .Li dest1
192 and
193 .Li dest2 ,
194 which in turn could be entries in
195 .Pa /etc/aliases .
196 The special name
197 .Ql *
198 can be used to create a catch-all alias, which gets used if no other
199 matching alias is found.
200 Use the catch-all alias only if you don't want any local mail to be
201 delivered.
202 .It Ic SPOOLDIR Xo
203 (string, default=/var/spool/dma)
204 .Xc
205 Path to
206 .Nm Ap s
207 spool directory.
208 Just stick with the default.
209 .It Ic AUTHPATH Xo
210 (string, default=not set)
211 .Xc
212 Path to the
213 .Sq auth.conf
214 file.
215 .It Ic SECURETRANS Xo
216 (boolean, default=commented)
217 .Xc
218 Uncomment if you want TLS/SSL secured transfer.
219 .It Ic STARTTLS Xo
220 (boolean, default=commented)
221 .Xc
222 Uncomment if you want to use STARTTLS.
223 Only useful together with
224 .Sq SECURETRANS .
225 .It Ic OPPORTUNISTIC_TLS Xo
226 (boolean, default=commented)
227 .Xc
228 Uncomment if you want to allow the STARTTLS negotiation to fail.
229 Most useful when
230 .Nm
231 is used without a smarthost, delivering remote messages directly to
232 the outside mail exchangers; in opportunistic TLS mode, the connection will
233 be encrypted if the remote server supports STARTTLS, but an unencrypted
234 delivery will still be made if the negotiation fails.
235 Only useful together with
236 .Sq SECURETRANS
237 and
238 .Sq STARTTLS .
239 .It Ic CERTFILE Xo
240 (string, default=empty)
241 .Xc
242 Path to your SSL certificate file.
243 .It Ic SECURE Xo
244 (boolean, default=commented)
245 .Xc
246 Uncomment this entry and change it to
247 .Sq INSECURE
248 to use plain text SMTP login over an insecure connection.
249 You have to rename this variable manually to prevent that you send your
250 password accidentally over an insecure connection.
251 .It Ic DEFER Xo
252 (boolean, default=commented)
253 .Xc
254 Uncomment if you want that
255 .Nm
256 defers your mail.
257 You have to flush your mail queue manually with the
258 .Fl q
259 option.
260 This option is handy if you are behind a dialup line.
261 .It Ic FULLBOUNCE Xo
262 (boolean, default=commented)
263 .Xc
264 Uncomment if you want the bounce message to include the complete original
265 message, not just the headers.
266 .It Ic MAILNAME Xo
267 (string, default=empty)
268 .Xc
269 The internet hostname
270 .Nm
271 uses to identify the host.
272 If not set or empty, the result of
273 .Xr gethostname 3
274 is used.
275 If
276 .Sq MAILNAME
277 is an absolute path to a file, the first line of this file will be used
278 as the hostname.
279 .It Ic MASQUERADE Xo
280 (string, default=empty)
281 .Xc
282 Masquerade the envelope-from addresses with this address/hostname.
283 Use this setting if mails are not accepted by destination mail servers
284 because your sender domain is invalid.
285 This setting is overridden by the
286 .Fl f
287 flag and the
288 .Ev EMAIL
289 environment variable.
290 .Pp
291 If
292 .Sq MASQUERADE
293 does not contain a
294 .Li @
295 sign, the string is interpreted as a host name.
296 For example, setting
297 .Sq MASQUERADE
298 to
299 .Ql john@
300 on host
301 .Ql hamlet
302 will send all mails as
303 .Ql john@hamlet ;
304 setting it to
305 .Ql percolator
306 will send all mails as
307 .Ql Sm off Va username @percolator .
308 .Sm on
309 .El
310 .Ss Environment variables
311 The behavior of
312 .Nm
313 can be influenced by some environment variables.
314 .Bl -tag -width 4n
315 .It Ev EMAIL Xo
316 .Xc
317 Used to set the sender address (envelope-from).
318 Use a plain address, in the form of
319 .Li user@example.com .
320 This value will be overridden when the
321 .Fl f
322 flag is used.
323 .El
324 .Sh SEE ALSO
325 .Xr mailaddr 7 ,
326 .Xr mailwrapper 8 ,
327 .Xr sendmail 8
328 .Rs
329 .%A "J. B. Postel"
330 .%T "Simple Mail Transfer Protocol"
331 .%O RFC 821
332 .Re
333 .Rs
334 .%A "J. Myers"
335 .%T "SMTP Service Extension for Authentication"
336 .%O RFC 2554
337 .Re
338 .Rs
339 .%A "P. Hoffman"
340 .%T "SMTP Service Extension for Secure SMTP over TLS"
341 .%O RFC 2487
342 .Re
343 .Sh HISTORY
344 The
345 .Nm
346 utility first appeared in
347 .Dx 1.11 .
348 .Sh AUTHORS
349 .Nm
350 was written by
351 .An Matthias Schmidt Aq matthias@dragonflybsd.org
352 and
353 .An Simon Schubert Aq corecode@dragonflybsd.org .