diff -ruN smeserver-qpsmtpd-2.7.0.old/root/sbin/e-smith/qpsmtpd-print-dns smeserver-qpsmtpd-2.7.0/root/sbin/e-smith/qpsmtpd-print-dns --- smeserver-qpsmtpd-2.7.0.old/root/sbin/e-smith/qpsmtpd-print-dns 2022-05-18 12:09:40.491731916 +0100 +++ smeserver-qpsmtpd-2.7.0/root/sbin/e-smith/qpsmtpd-print-dns 2022-05-18 13:25:56.736515792 +0100 @@ -20,10 +20,21 @@ print <<'_EOF'; -Here are sample DNS entries you should add in your public DNS -The DKIM entry can be copied as is, but others will probably need to be adjusted -to your need. For example, you should either change the reporting email adress -for DMARC (or create the needed pseudonym) +Here are sample DNS entries you should add in your public DNS. + +There are two DKIM key copies. +Depending on your provider you might be able to copy these as is. + +The first has a complete DKIM key with no "" breaks. + +The second has the DKIM entry broken into 255 character chunks +with quotes for providers who cannot support long strings. +You may need to separate these with either a space, a newline or +a backslash escaped newline between the "" depending on your +dns provider. + +You should either change the reporting email address for DMARC +or create the needed pseudonym 'dmarc-feedback'. _EOF @@ -41,13 +52,27 @@ chomp $selector; close SEL; + +print "DKIM complete\n"; +print "=============\n"; +print " \n"; +print "$selector._domainkey IN TXT $key_string\n"; + + my @key_chunks = ( $key_string =~ /.{1,255}/g ); my $txt = ''; $txt .= '"' . $_ . '"' foreach (@key_chunks); -print <<"_EOF"; +print " \n"; +print "DKIM in 255 character chunks\n"; +print "============================\n"; +print " \n"; +print <<"_EOF"; $selector._domainkey IN TXT $txt +\n +DMARC records +============= \@ IN SPF "v=spf1 mx a -all" \@ IN TXT "v=spf1 mx a -all" _dmarc IN TXT "v=DMARC1; p=none; adkim=s; aspf=r; rua=mailto:dmarc-feedback\@$domain; pct=100"