Translation(s): English - Русский

Domain Keys Identified Mail (DKIM) combines several existing antiphishing and antispam methods to improve the quality of the classification and identification of legitimate e-mail. Instead of the traditional IP-address, to determine the message sender DKIM adds a digital signature associated with the domain name of the organization.


Postfix and opendkim

Install the package:

  apt-get install opendkim opendkim-tools

Add to the Postfix signature opendkim. For convenience, I keep all the settings in /etc/postfix/dkim/, you can choose a different directory.

  mkdir /etc/postfix/dkim/ 

Generate a key for server

  opendkim-genkey -D /etc/postfix/dkim/ -d -s mail 

resulting in the directory /etc/postfix/dkim/ 2 files : mail.private and mail.txt (private and public key, respectively). The key file is necessary to allow read access for the group, which employs OpenDKIM :

  chgrp opendkim /etc/postfix/dkim/*
  chmod g+r /etc/postfix/dkim/*

Setup the /etc/opendkim.conf:

All the available options can be found on the page:

Syslog yes

# Signature mode and signature verification
Mode sv

# Specify the list of keys
KeyTable file:/etc/postfix/dkim/keytable
# Match keys and domains
SigningTable file:/etc/postfix/dkim/signingtable 

Now in the file /etc/postfix/dkim/keytable, put information about the private key: 

In the file /etc/postfix/dkim/signingtable, specify which key will sign a domain:

# Domain
# You can specify multiple domains

In the file /etc/default/opendkim, specify daemon connection settings:


And add the line to the Postfix /etc/postfix/

  milter_default_action = accept
  milter_protocol = 2
  smtpd_milters = inet:localhost:8891
  non_smtpd_milters = inet:localhost:8891 

The setup of opendkim and postfix is complete. Now we must configure the DNS.

DNS Configuration

Add a TXT record for your domain

Record Name

Record Type




"v=DKIM1; k=rsa;" "p=MI.." (take it from /etc/postfix/dkim/mail.txt file)


You can test your installation with opendkim-testkey:

# opendkim-testkey -d -s mail -vvv

opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: checking key ''
opendkim-testkey: key not secure
opendkim-testkey: key OK

See also