Configuring DKIM signing in MDaemon

Configuring DKIM signing in MDaemon

DomainKeys Identified Mail (DKIM) is an open protocol for protecting email users against email address identity theft and email message content tampering. It does this by providing positive identification of the signer’s identity along with an encrypted “hash” of the message content.

To configure and use DKIM: 

  1. The system administrator creates a private/public key pair for the server and publishes the public key in the domain’s domain name server.
  2. Using the private key, the sending server creates a signature for each outgoing message. The resulting signature data is stored in a “DKIM-Signature” header within the message.
  3. The receiving server obtains the signature from the “DKIM-Signature” header and verifies it using the signer’s public key.



To configure and use DKIM in MDaemon:

  1. Open the Security menu from the MDaemon interface
  2. Select SPF & SenderID / DomainKeys & DKIM / HashCash...
  3. Select the DK & DKIM (signing) tab
  4. Enable Sign outgoing messages with DomainKeys Identified Mail (DKIM)
  5. Click the Create new public and private keys to have MDaemon generate the public key your DNS server needs for DKIM checks and the private one that MDaemon uses. (If you have done this already for DomainKeys you will want to skip this step)
  6. A confirmation window will appear, click yes to continue.
  7. After MDaemon creates the key pair, the readme will display on screen showing the public keys that need to be entered into your DNS server.  It is also saved to \MDaemon\Pem\MDaemon\dns_readme.txt
  8. Enter this public key from the readme into your DNS server as a TXT record. The instructions on how to edit your DNS records will vary based on what DNS software you are using. Do NOT use the DKIM ssp record for DNS section of the file. Use the example information below as a template for creating your DNS entries. The DKIM standard has changed, and MDaemon 9.x and below generates outdated examples using SSP (Sender Signing Practices) rather than ADSP (Author Domain Signing Practices). 

There are different ways to set up your DNS record depending on how strict you want the DKIM policy for your domain to be. 

DKIM Legend (you can use these signing policies with DKIM):

      dkim=unknown     - The domain might sign some or all email
      dkim=all               - All mail from the domain is signed
      dkim=discardable - All mail from the domain is signed and receivers are
                                   encouraged to discard unsigned mail

Example DNS data for policy using DKIM:

  • If all outbound mail for domain.com is signed:
         _adsp._domainkey.domain.com. IN TXT 'dkim=all'
  • If all outbound mail for domain.com is signed and unsigned mail should be discarded:
         _adsp._domainkey.domain.com. IN TXT 'dkim=discardable'
  • If some outbound mail for domain.com might not be signed:
         _adsp._domainkey.domain.com. IN TXT 'dkim=unknown'

Additional Comments

A domain SHOULD NOT publish a 'discardable' record if it wishes to maximize the likelihood that mail from the domain is delivered, since it could cause some fraction of the mail the domain sends to be discarded.

Discardable mode will not work with mailing lists so use this with caution.

In order for their messages to be eligible for signing, local users must authenticate when sending mail.