DragonFly On-Line Manual Pages
DMA(8) DragonFly System Manager's Manual DMA(8)
dma - DragonFly Mail Agent
dma [-DiOt] [-Amode] [-bmode] [-f sender] [-L tag] [-ooption] [-r sender]
[-q[arg]] [recipient ...]
dma is a small Mail Transport Agent (MTA), designed for home and office
use. It accepts mails from locally installed Mail User Agents (MUA) and
delivers the mails either locally or to a remote destination. Remote
delivery includes several features like TLS/SSL support and SMTP
dma is not intended as a replacement for real, big MTAs like sendmail(8)
or postfix(1). Consequently, dma does not listen on port 25 for incoming
The options are as follows:
-Amode -Ac acts as a compatibility option for sendmail.
-bp List all mails currently stored in the mail queue.
-bq Queue the mail, but don't attempt to deliver it. See
also the `DEFER' config file setting below.
All other modes are ignored.
-D Don't run in the background. Useful for debugging.
Set sender address (envelope-from) to sender. This overrides the
value of the EMAIL environment variable, but is overridden by the
`MASQUERADE' config file setting.
-i Ignore dots alone on lines by themselves in incoming messages.
This should be set if you are reading data from a file.
-L tag Set the identifier used in syslog messages to the supplied tag.
This is a compatibility option for sendmail.
-O This is a compatibility option for sendmail.
Specifying -oi is synonymous to -i. All other options are
Process saved messages in the queue. The argument is optional
Same as -f.
-t Obtain recipient addresses from the message header. dma will
parse the To:, Cc:, and Bcc: headers. The Bcc: header will be
removed independent of whether -t is specified or not.
dma can be configured with two config files:
These two files are stored per default in /etc/dma.
Every file contains parameters of the form `name value'. Lines
containing boolean values are set to `NO' if the line is commented and to
`YES' if the line is uncommented. Empty lines or lines beginning with a
`#' are ignored. Parameter names and their values are case sensitive.
SMTP authentication can be configured in auth.conf. Each line has the
dma uses the recipient MTA hostname and finds the first entry in the
auth.conf file that matches the smarthost value or the hostname of the
recipient address. It then uses the user and password to authenticate
with the smarthost.
Note, that the only authentication method supported is CRAM-MD5. The
receiving MTA must be configured to accept CRAM-MD5 authentication.
Most of the behaviour of dma can be configured in dma.conf.
SMARTHOST (string, default=empty)
If you want to send outgoing mails via a smarthost, set this
variable to your smarthosts address.
PORT (numeric, default=25)
Use this port to deliver remote emails. Only useful together with
the `SMARTHOST' option, because dma will deliver all mails to this
port, regardless of whether a smarthost is set or not.
ALIASES (string, default=/etc/aliases)
Path to the local aliases file. Just stick with the default. The
aliases file is of the format
nam: dest1 dest2 ...
In this case, mails to nam will instead be delivered to dest1 and
dest2, which in turn could be entries in /etc/aliases. The special
name `*' can be used to create a catch-all alias, which gets used
if no other matching alias is found. Use the catch-all alias only
if you don't want any local mail to be delivered.
SPOOLDIR (string, default=/var/spool/dma)
Path to dma's spool directory. Just stick with the default.
AUTHPATH (string, default=not set)
Path to the `auth.conf' file.
SECURETRANSFER (boolean, default=commented)
Uncomment if you want TLS/SSL secured transfer.
STARTTLS (boolean, default=commented)
Uncomment if you want to use STARTTLS. Only useful together with
FINGERPRINT (string, default=empty)
Pin the server certificate by specifying its SHA256 fingerprint.
Only makes sense if you use a smarthost.
OPPORTUNISTIC_TLS (boolean, default=commented)
Uncomment if you want to allow the STARTTLS negotiation to fail.
Most useful when dma is used without a smarthost, delivering remote
messages directly to the outside mail exchangers; in opportunistic
TLS mode, the connection will be encrypted if the remote server
supports STARTTLS, but an unencrypted delivery will still be made
if the negotiation fails. Only useful together with
`SECURETRANSFER' and `STARTTLS'.
CERTFILE (string, default=empty)
Path to your SSL certificate file.
SECURE (boolean, default=commented)
Uncomment this entry and change it to `INSECURE' to use plain text
SMTP login over an insecure connection. You have to rename this
variable manually to prevent that you send your password
accidentally over an insecure connection.
DEFER (boolean, default=commented)
Uncomment if you want that dma defers your mail. You have to flush
your mail queue manually with the -q option. This option is handy
if you are behind a dialup line.
FULLBOUNCE (boolean, default=commented)
Uncomment if you want the bounce message to include the complete
original message, not just the headers.
MAILNAME (string, default=empty)
The internet hostname dma uses to identify the host. If not set or
empty, the result of gethostname(3) is used. If `MAILNAME' is an
absolute path to a file, the first line of this file will be used
as the hostname.
MASQUERADE (string, default=empty)
Masquerade the envelope-from addresses with this address/hostname.
Use this setting if mails are not accepted by destination mail
servers because your sender domain is invalid. This setting
overrides the -f flag and the EMAIL environment variable.
If `MASQUERADE' does not contain a @ sign, the string is
interpreted as a host name. For example, setting `MASQUERADE' to
`john@' on host `hamlet' will send all mails as `john@hamlet';
setting it to `percolator' will send all mails as
NULLCLIENT (boolean, default=commented)
Bypass aliases and local delivery, and instead forward all mails to
the defined `SMARTHOST'. `NULLCLIENT' requires `SMARTHOST' to be
The behavior of dma can be influenced by some environment variables.
Used to set the sender address (envelope-from). Use a plain
address, in the form of email@example.com. This value will be
overridden when the `MASQUERADE' config file setting or the -f flag
forward(5), mailwrapper(8), sendmail(8)
J. B. Postel, Simple Mail Transfer Protocol, RFC 821.
J. Myers, SMTP Service Extension for Authentication, RFC 2554.
P. Hoffman, SMTP Service Extension for Secure SMTP over TLS, RFC 2487.
The dma utility first appeared in DragonFly 1.11.
dma was written by Matthias Schmidt <firstname.lastname@example.org> and Simon
dma does not currently support the forward(5) feature.
DragonFly 6.3-DEVELOPMENT January 17, 2023 DragonFly 6.3-DEVELOPMENT