selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
dma logo

Self-host dma

v0.14

Lightweight Mail Transport Agent for local mail delivery

ReleaseOpen SourceOther
Updatedlast year
LanguageC
Setup difficultyModerate
Stars
266
Requires
OpenSSL
Install with Arch Linux

What is dma?

dma (DragonFly Mail Agent) is a lightweight MTA for home and office environments. It accepts emails from local mail clients and delivers them locally or to remote destinations via SMTP. It supports TLS/SSL encryption and SMTP authentication for secure remote delivery. Unlike full MTAs such as sendmail or Postfix, dma does not accept incoming connections on port 25, making it suitable for outbound-only mail. It installs via package managers on FreeBSD, Ubuntu, and Arch, or builds from source on Linux and BSD. Configuration uses two files in /etc/dma: auth.conf for SMTP credentials and dma.conf for smarthost, port, aliases, spool directory, and TLS options. Licensed under a BSD-style license, actively maintained since 2011.

Should you self-host dma?

dma scores 48/100 on selfhost.directory (how scoring works) and ranks #65 of 106 in Email. It has 266 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is moderate: expect some configuration beyond a single command. It is Other-licensed and written mostly in C.

Its closest alternative on selfhost.directory is Listmonk (80/100, 24 017 stars). It scores higher overall, so compare the two before you pick. See dma vs Listmonk side by side.

Features

  • Address masquerading
  • Alias support
  • Certificate pinning
  • Local Mail Delivery
  • Mail queue management
  • Null client mode
  • Opportunistic TLS
  • Remote Mail Delivery
  • Smarthost relay
  • SMTP Authentication
  • STARTTLS support
  • TLS/SSL Support

dma README

How to install dma

Install dma with Arch Linux

yaourt -S dma

Available via AUR (yaourt)

How to configure dma

  • ALIASES/etc/aliasesPath to local aliases file

    Path to local aliases file

    values: string (file path)

  • AUTHPATHnot setPath to the auth.conf file

    Path to the auth.conf file

    values: string (file path)

  • CERTFILEemptyPath to SSL certificate file

    Path to SSL certificate file

    values: string (file path)

  • DEFERcommented (disabled)Defer mail delivery, requiring manual queue flush

    Defer mail delivery, requiring manual queue flush

    values: boolean (YES/NO)

  • FINGERPRINTemptySHA256 fingerprint of server certificate for pinning

    SHA256 fingerprint of server certificate for pinning

    values: string (SHA256 hex)

  • FULLBOUNCEcommented (disabled)Include complete original message in bounce messages

    Include complete original message in bounce messages

    values: boolean (YES/NO)

  • MAILNAMEempty (uses gethostname)Internet hostname dma uses to identify the host

    Internet hostname dma uses to identify the host

    values: string (hostname or file path)

  • MASQUERADEemptyMasquerade envelope-from addresses

    Masquerade envelope-from addresses

    values: string (email address or hostname)

  • NULLCLIENTcommented (disabled)Bypass aliases and local delivery, forward all mail to smarthost

    Bypass aliases and local delivery, forward all mail to smarthost

    values: boolean (YES/NO)

  • OPPORTUNISTIC_TLScommented (disabled)Allow STARTTLS negotiation to fail

    Allow STARTTLS negotiation to fail

    values: boolean (YES/NO)

  • PORT25Port to use for remote email delivery

    Port to use for remote email delivery

    values: numeric

  • SECUREcommented (disabled)Allow plain text SMTP login over insecure connection

    Allow plain text SMTP login over insecure connection

    values: boolean (YES/NO or INSECURE)

  • SECURETRANSFERcommented (disabled)Enable TLS/SSL secured transfer

    Enable TLS/SSL secured transfer

    values: boolean (YES/NO)

  • SMARTHOSTemptyRemote SMTP server to relay outgoing mail through

    Remote SMTP server to relay outgoing mail through

    values: string (hostname or IP)

  • SPOOLDIR/var/spool/dmaPath to dma's spool directory

    Path to dma's spool directory

    values: string (file path)

  • STARTTLScommented (disabled)Use STARTTLS for opportunistic TLS

    Use STARTTLS for opportunistic TLS

    values: boolean (YES/NO)

More in Email

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…