OpenDKIM won't start: "opendkim: milter socket must be specified"

I’m trying to setup a server using postfix, dovecot, amavis and opendkim for signing.

OpenDKIM won’t start, here is the output of journalctl -xe, after stopping and starting opendkim:

Jul 21 21:54:17 mail systemd[1]: Starting OpenDKIM DomainKeys Identified Mail (DKIM) Milter...
-- Subject: A start job for unit opendkim.service has begun execution
-- Defined-By: systemd
-- Support:
-- A start job for unit opendkim.service has begun execution.
-- The job identifier is 54385.
Jul 21 21:54:17 mail opendkim[108677]: opendkim: milter socket must be specified
Jul 21 21:54:17 mail systemd[1]: opendkim.service: Control process exited, code=exited, status=78/CONFIG
-- Subject: Unit process exited
-- Defined-By: systemd
-- Support:
-- An ExecStart= process belonging to unit opendkim.service has exited.
-- The process' exit code is 'exited' and its exit status is 78.
Jul 21 21:54:17 mail systemd[1]: opendkim.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support:
-- The unit opendkim.service has entered the 'failed' state with result 'exit-code'.

My OpenDKIM (/etc/opendkim.conf) config looks like this:

Syslog              yes
LogResults          yes
LogWhy              yes
SyslogSuccess       yes
UMask               002
Canonicalization    relaxed/relaxed

# Only sign, don't verify (Amavis takes care of the verification)
Mode                s

KeyTable            /etc/opendkim/keytable
SigningTable        refile:/etc/opendkim/signingtable

As you could see in the config, I only want OpenDKIM to sign, not verify.

Server Fault Asked by UnlegitApple on November 14, 2021

1 Answers

One Answer

As the error says, you should specify the socket. The mandatory configuration parameter can be found on opendkim.conf documentation:

Socket (string)

Specifies the socket that should be established by the filter to receive connections from sendmail(8) in order to provide service. socketspec is in one of two forms: 

  • local:path, which creates a UNIX domain socket at the specified path, or
  • inet:port[@host] or inet6:port[@host] which creates a TCP socket on the specified port and in the specified protocol family.

If the host is not given as either a hostname or an IP address, the socket will be listening on all interfaces. A literal IP address must be enclosed in square brackets. This option is mandatory either in the configuration file or on the command line.

Answered by Esa Jokinen on November 14, 2021

Add your own answers!

Related Questions

HP DL380p G8 Populating the RAM

0  Asked on December 24, 2020 by khizer-hussain


Accessing servers through hostname now requires FQDN?

0  Asked on December 24, 2020 by dpsspatial


Outlook SSL Error after New Certificate Installation

6  Asked on December 24, 2020 by clay-powell


Is aws-iam-authenticator still needed with EKS?

1  Asked on December 22, 2020 by giovanni-tirloni


I can’t start connection with WebSockets in EC2

0  Asked on December 21, 2020 by paula-silva


Ask a Question

Get help from others!

© 2021 All rights reserved.