---
name: "dma.conf"
section: "5"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/dma.conf"
---

# dma.conf(5)

DragonFly Mail Agent

## NAME

**dma** – DragonFly Mail Agent

## SYNOPSIS

**dma** \[**-DiOt**\] \[**-A***mode*\] \[**-b***mode*\] \[**-f** *sender*\] \[**-L** *tag*\] \[**-o***option*\] \[**-r** *sender*\] \[**-q**\[*arg*\]\] \[*recipient* *...*\]

## DESCRIPTION

**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 authentication.

**dma** is not intended as a replacement for real, big MTAs like [sendmail(8)](/sendmail/8.md) or [postfix(1)](/postfix/1.md). Consequently, **dma** does not listen on port 25 for incoming connections.

The options are as follows:

- **-A***mode*

  **-Ac** acts as a compatibility option for sendmail.

- **-b***mode*

  - **-bp**

    List all mails currently stored in the mail queue.

  - **-bq**

    Queue the mail, but do not attempt to deliver it. See also the ‘DEFER’ config file setting below.

    All other*mode* s are ignored.

- **-D**

  Do not run in the background. Useful for debugging.

- **-f** *sender*

  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.

- **-o***option*

  Specifying **-oi** is synonymous to **-i**. All other options are ignored.

- **-q**\[*arg*\]

  Process saved messages in the queue. The argument is optional and ignored.

- **-r** *sender*

  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.

## CONFIGURATION

**dma** can be configured with two config files:

- auth.conf

- dma.conf

These two files are stored per default in */etc/dma*.

## FILE FORMAT

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.

## PARAMETERS

### auth.conf

SMTP authentication can be configured in *auth.conf*. Each line has the format “user\|smarthost:password”.

### dma.conf

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 do not 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 ‘SECURETRANSFER’.

- **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)](/gethostname/3.md) 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 ‘*username**@percolator*’.

- **NULLCLIENT**

  (boolean, default=commented) Bypass aliases and local delivery, and instead forward all mails to the defined ‘SMARTHOST’. ‘NULLCLIENT’ requires ‘SMARTHOST’ to be set.

### Environment variables

The behavior of **dma** can be influenced by some environment variables.

- EMAIL

  Used to set the sender address (envelope-from). Use a plain address, in the form of user@example.com. This value will be overridden when the ‘MASQUERADE’ config file setting or the **-f** flag is used.

## SEE ALSO

[mailaddr(7)](/mailaddr/7.md), [mailwrapper(8)](/mailwrapper/8.md), [sendmail(8)](/sendmail/8.md) 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.

## HISTORY

The **dma** utility first appeared in DragonFly 1.11.

## AUTHORS

**dma** was written by Matthias Schmidt ⟨*matthias@dragonflybsd.org*⟩ and Simon Schubert ⟨*2@0x2c.org*⟩.
