<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.qmailtoaster.org:80/index.php?action=history&amp;feed=atom&amp;title=DKIM</id>
	<title>DKIM - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.qmailtoaster.org:80/index.php?action=history&amp;feed=atom&amp;title=DKIM"/>
	<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=DKIM&amp;action=history"/>
	<updated>2026-04-08T12:08:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=DKIM&amp;diff=1384&amp;oldid=prev</id>
		<title>Ebroch: Created page with &quot;Back&lt;br&gt; Source: [https://manuel.mausz.at/coding/qmail-dkim/ Manuel Mausz&#039;] Perl script  1. DKIM sign all email with global key   &#039;&#039;&#039;Set up signing framework&#039;&#039;&#039;  # yum -y install perl-XML-Simple perl-Mail-DKIM perl-XML-Parser  # qmailctl stop  # cd /var/qmail/bin  # mv qmail-remote qmail-remote.orig  &lt;!--# wget -P /var/qmail/bin  https://raw.githubusercontent.com/qmtoaster/dkim/master/qmail-remote--&gt;  &lt;!--# wget http...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=DKIM&amp;diff=1384&amp;oldid=prev"/>
		<updated>2024-10-19T18:09:13Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&lt;a href=&quot;/index.php?title=Configuration#How_to_Setup_DKIM_with_Qmail_Toaster&quot; title=&quot;Configuration&quot;&gt;Back&lt;/a&gt;&amp;lt;br&amp;gt; Source: [https://manuel.mausz.at/coding/qmail-dkim/ Manuel Mausz&amp;#039;] Perl script  1. DKIM sign all email with global key   &amp;#039;&amp;#039;&amp;#039;Set up signing framework&amp;#039;&amp;#039;&amp;#039;  # yum -y install perl-XML-Simple perl-Mail-DKIM perl-XML-Parser  # qmailctl stop  # cd /var/qmail/bin  # mv qmail-remote qmail-remote.orig  &amp;lt;!--# wget -P /var/qmail/bin  https://raw.githubusercontent.com/qmtoaster/dkim/master/qmail-remote--&amp;gt;  &amp;lt;!--# wget http...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Configuration#How_to_Setup_DKIM_with_Qmail_Toaster|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
Source: [https://manuel.mausz.at/coding/qmail-dkim/ Manuel Mausz&amp;#039;] Perl script&lt;br /&gt;
&lt;br /&gt;
1. DKIM sign all email with global key&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Set up signing framework&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 # yum -y install perl-XML-Simple perl-Mail-DKIM perl-XML-Parser&lt;br /&gt;
 # qmailctl stop&lt;br /&gt;
 # cd /var/qmail/bin&lt;br /&gt;
 # mv qmail-remote qmail-remote.orig&lt;br /&gt;
 &amp;lt;!--# wget -P /var/qmail/bin  https://raw.githubusercontent.com/qmtoaster/dkim/master/qmail-remote--&amp;gt;&lt;br /&gt;
 &amp;lt;!--# wget https://manuel.mausz.at/coding/qmail-dkim/qmail-dkim-0.3.pl--&amp;gt;&lt;br /&gt;
 # wget https://raw.githubusercontent.com/qmtoaster/dkim/master/mail-dkim-0.3.pl&lt;br /&gt;
 # chmod 755 mail-dkim-0.3.pl &amp;amp;&amp;amp; chown root:qmail mail-dkim-0.3.pl&lt;br /&gt;
 # ln -s mail-dkim-0.3.pl qmail-remote&lt;br /&gt;
 # mkdir /var/qmail/control/dkim&lt;br /&gt;
 # chown -R qmailr:qmail /var/qmail/control/dkim&lt;br /&gt;
 # cd /var/qmail/control/dkim&lt;br /&gt;
 # wget https://raw.githubusercontent.com/qmtoaster/dkim/master/signconf.xml&lt;br /&gt;
 # openssl genrsa -out global.key 2048 &amp;amp;&amp;amp; chmod 644 global.key&lt;br /&gt;
 # openssl rsa -in global.key -pubout -out global.txt&lt;br /&gt;
 # perl -pi -e &amp;#039;s/-----BEGIN PUBLIC KEY-----/dkim1._domainkey IN TXT &amp;quot;k=rsa; p=/g; s/-----END PUBLIC KEY-----/&amp;quot;/g; s/\n//g&amp;#039; global.txt&lt;br /&gt;
 # qmailctl start&lt;br /&gt;
 # cat signconf.xml&amp;lt;span style=&amp;quot;color:tomato&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;dkimsign&amp;gt;&lt;br /&gt;
  &amp;amp;lt;!-- per default sign all mails using dkim --&amp;amp;gt;&lt;br /&gt;
  &amp;lt;global algorithm=&amp;quot;rsa-sha1&amp;quot; domain=&amp;quot;/var/qmail/control/me&amp;quot; keyfile=&amp;quot;/var/qmail/control/dkim/global.key&amp;quot; method=&amp;quot;simple&amp;quot; selector=&amp;quot;dkim1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;types id=&amp;quot;dkim&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;types id=&amp;quot;domainkey&amp;quot; method=&amp;quot;nofws&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/global&amp;gt;&lt;br /&gt;
 &amp;lt;/dkimsign&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 # cat global.txt&amp;lt;span style=&amp;quot;color:tomato&amp;quot;&amp;gt;&lt;br /&gt;
  dkim1._domainkey      IN      TXT     &amp;quot;k=rsa; p=******************************&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Create DNS TXT record from the above file &amp;#039;public.txt&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
  Host                                Text&lt;br /&gt;
  dkim1._domainkey       	v=DKIM1; k=rsa; p=*************************&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Your DKIM global key setup is done. Send email to Yahoo or GMail, inspect header.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
2. DKIM sign domain with specific key&lt;br /&gt;
 # cd /var/qmail/control/dkim&lt;br /&gt;
 # openssl genrsa -out dom.com.key 2048 &amp;amp;&amp;amp; chmod 644 dom.com.key&lt;br /&gt;
 # openssl rsa -in dom.com.key -pubout -out dom.com.txt&lt;br /&gt;
 # perl -pi -e &amp;#039;s/-----BEGIN PUBLIC KEY-----/dkim1._domainkey IN TXT &amp;quot;k=rsa; p=/g; s/-----END PUBLIC KEY-----/&amp;quot;/g; s/\n//g&amp;#039; dom.com.txt&lt;br /&gt;
 # cat dom.com.txt&amp;lt;span style=&amp;quot;color:tomato&amp;quot;&amp;gt;&lt;br /&gt;
  dkim1._domainkey       IN      TXT     &amp;quot;k=rsa; p=******************************&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;Create DNS TXT record from the above file &amp;#039;dom.com.txt&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 Host                                Text&lt;br /&gt;
  dkim1._domainkey       	v=DKIM1; k=rsa; p=*************************&amp;lt;br&amp;gt;&lt;br /&gt;
 # cat signconf.xml&amp;lt;span style=&amp;quot;color:tomato&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;dkimsign&amp;gt;&lt;br /&gt;
  &amp;amp;lt;!-- per default sign all mails using dkim --&amp;amp;gt;&lt;br /&gt;
  &amp;lt;global algorithm=&amp;quot;rsa-sha1&amp;quot; domain=&amp;quot;/var/qmail/control/me&amp;quot; keyfile=&amp;quot;/var/qmail/control/dkim/global.key&amp;quot; method=&amp;quot;simple&amp;quot; selector=&amp;quot;dkim1&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;types id=&amp;quot;dkim&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;types id=&amp;quot;domainkey&amp;quot; method=&amp;quot;nofws&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/global&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;amp;lt;!-- dkim sign dom.com --&amp;amp;gt;&lt;br /&gt;
  &amp;lt;dom.com domain=&amp;quot;dom.com&amp;quot; keyfile=&amp;quot;/var/qmail/control/dkim/dom.com.key&amp;quot; selector=&amp;quot;dkim1&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;types id=&amp;quot;dkim&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;types id=&amp;quot;domainkey&amp;quot; method=&amp;quot;nofws&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/dom.com&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/strong&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;/dkimsign&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
3. DKIM no signing for domain&lt;br /&gt;
&lt;br /&gt;
 # cd /var/qmail/control/dkim&lt;br /&gt;
 # cat signconf.xml&amp;lt;span style=&amp;quot;color:tomato&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;dkimsign&amp;gt;&lt;br /&gt;
  &amp;amp;lt;!-- per default sign all mails using dkim --&amp;amp;gt;&lt;br /&gt;
  &amp;lt;global algorithm=&amp;quot;rsa-sha1&amp;quot; domain=&amp;quot;/var/qmail/control/me&amp;quot; keyfile=&amp;quot;/var/qmail/control/dkim/global.key&amp;quot; method=&amp;quot;simple&amp;quot; selector=&amp;quot;dkim1&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;types id=&amp;quot;dkim&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;types id=&amp;quot;domainkey&amp;quot; method=&amp;quot;nofws&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/global&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;amp;lt;!-- dkim sign dom.com --&amp;amp;gt;&lt;br /&gt;
  &amp;lt;dom.com domain=&amp;quot;dom.com&amp;quot; keyfile=&amp;quot;/var/qmail/control/dkim/dom.com.key&amp;quot; selector=&amp;quot;dkim1&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;types id=&amp;quot;dkim&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;types id=&amp;quot;domainkey&amp;quot; method=&amp;quot;nofws&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/dom.com&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;&amp;lt;strong&amp;gt;&lt;br /&gt;
  &amp;amp;lt;!-- no dkim signing nosigndom.com --&amp;amp;gt;&lt;br /&gt;
  &amp;lt;nosigndom.com /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/strong&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;/dkimsign&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. DKIM verification (Spamassassin preferred):&lt;br /&gt;
&lt;br /&gt;
 Assumes:  &lt;br /&gt;
   a. &amp;#039;QMAILQUEUE=&amp;quot;/var/qmail/bin/simscan&amp;quot;&amp;#039; defined in /etc/tcprules.d/tcp.smtp &lt;br /&gt;
   b. /var/qmail/bin/qmail-queue is a link.&lt;br /&gt;
   c. &amp;#039;export DKVERIFY=1&amp;#039; and &amp;#039;/usr/bin/softlimit -m 128000000&amp;#039; in /var/qmail/supervise/smtp/run&lt;br /&gt;
 # qmailctl stop&lt;br /&gt;
 # cd /var/qmail/bin&lt;br /&gt;
 # wget http://www.qmailtoaster.org/dkimverify.pl&lt;br /&gt;
 # wget http://www.qmailtoaster.org/qmail-queue.pl.sh&lt;br /&gt;
 # chown root:root dkimverify.pl&lt;br /&gt;
 # chown qmailq:qmail qmail-queue.pl.sh&lt;br /&gt;
 # chmod 755 dkimverify.pl&lt;br /&gt;
 # chmod 4777 qmail-queue.pl.sh&lt;br /&gt;
 # unlink qmail-queue&lt;br /&gt;
 # ln -s qmail-queue.pl.sh qmail-queue&lt;br /&gt;
 # qmailctl start&lt;br /&gt;
 Send email to user on the host&lt;br /&gt;
 Check email header dkim verification&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Notes: &lt;br /&gt;
 1) In order to test your settings, simply send an email to: check-auth@verifier.port25.com and/or check-auth2@verifier.port25.com&lt;br /&gt;
    with the suject of &amp;quot;test&amp;quot; (without the quotes) and &amp;quot;Just testing&amp;quot; in the body (also without quotes). It is best but not required&lt;br /&gt;
    to have a subject and body because this service will also show you how spamassassin rated your email. If you have a GMAIL/Yahoo&lt;br /&gt;
    email account sending to either or both accounts DKIM signatures could be verified.&lt;br /&gt;
    Click to test&lt;br /&gt;
 2) To test your DKIM signature wiith OpenDKIM&amp;#039;s &amp;#039;opendkim-testkey&amp;#039; utility install opendkim and run the utility:&lt;br /&gt;
    a) # yum install epel-release opendkim*&lt;br /&gt;
    b) # opendkim-testkey -vvvv -d otherdomain.com  -k /var/qmail/control/dkim/otherdomain.com.key -s dkim1&amp;lt;br&amp;gt;&lt;br /&gt;
         opendkim-testkey: using default configfile /etc/opendkim.conf&lt;br /&gt;
         opendkim-testkey: /var/qmail/control/dkim/otherdomain.com.key: WARNING: unsafe permissions&lt;br /&gt;
         opendkim-testkey: key loaded from /var/qmail/control/dkim/otherdomain.com.key&lt;br /&gt;
         opendkim-testkey: checking key &amp;#039;dkim1._domainkey.otherdomain.com&amp;#039;&lt;br /&gt;
         opendkim-testkey: key OK&amp;lt;br&amp;gt;&lt;br /&gt;
 3) Testing DKIM signatures sending from Roundcube webmail I found that plain text formatted email caused DKIM failure sending&lt;br /&gt;
    to port25.com and GMAIL recipients, but when sending the same email in Roundcube&amp;#039;s html format the DKIM signature was verified&lt;br /&gt;
    and passed. The same email DKIM signature passed with Squirrelmail, Thunderbird, and OpenDKIM&amp;#039;s &amp;#039;opendkim-testkey&amp;#039; program. It &lt;br /&gt;
    seems that certain email clients will add or subtract characters in the email header causing DKIM to fail. This may be happening &lt;br /&gt;
    in Roundcube while other clients do not affect the email header adversely. I have a help request in the Roundcube user&amp;#039;s list&lt;br /&gt;
    for this issue. Hopefully, this issue is  merely a configuration setting, if not, that it is resolved soon.&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
</feed>