{"id":49,"date":"2012-04-25T05:50:00","date_gmt":"2012-04-25T05:50:00","guid":{"rendered":"http:\/\/pheonixsolutions.com\/?p=49"},"modified":"2016-06-24T17:10:48","modified_gmt":"2016-06-24T11:40:48","slug":"install-dkim-in-postfix-using-opendkim","status":"publish","type":"post","link":"https:\/\/pheonixsolutions.com\/blog\/install-dkim-in-postfix-using-opendkim\/","title":{"rendered":"Install DKIM in Postfix using openDKIM"},"content":{"rendered":"<div dir=\"ltr\" style=\"text-align: left;\">1. Install prerequisites===========<br \/>\nyum install sendmail-devel openssl-devel<br \/>\n===========2. Install OpenDKIM<\/p>\n<p>Download then extract OpenDKIM. Change to the extracted directory and run configure, make and then, as root, make install.<\/p>\n<p>===========<br \/>\nwget http:\/\/downloads.sourceforge.net\/project\/opendkim\/opendkim-2.4.2.tar.gz<br \/>\ntar -zxf opendkim-2.4.2.tar.gz<br \/>\ncd opendkim*<br \/>\n.\/configure<br \/>\nmake &amp;&amp; make install<br \/>\n===========<\/p>\n<p>3. Post install steps<\/p>\n<p>Create a Linux user for OpenDKIM, then make some directories to store your keys and config files in.<\/p>\n<p>============<br \/>\nuseradd -s \/sbin\/nologin -b \/var\/run\/opendkim opendkim-milt<br \/>\nmkdir \/etc\/mail\/dkim<br \/>\nmkdir \/etc\/mail\/dkim\/keys<br \/>\nchown -R opendkim-milt:opendkim-milt \/etc\/mail\/dkim<br \/>\nchmod -R go-wrx \/etc\/mail\/dkim\/keys<br \/>\n============<\/p>\n<p>4.Check for startup script (\/etc\/init.d\/opendkim). If not present, use this:<\/p>\n<p>==============<br \/>\n#!\/bin\/bash<br \/>\n#<br \/>\n# opendkim\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Start and stop opendkim.<\/p>\n<p># chkconfig: &#8211; 41 61<br \/>\n# description: opendkim<br \/>\n# processname: opendkim<br \/>\n# pidfile: \/var\/run\/opendkim\/dkim-milter.pid<\/p>\n<p>### BEGIN INIT INFO<br \/>\n# Provides: opendkim<br \/>\n# Required-Start: opendkim<br \/>\n# Required-Stop: opendkim<br \/>\n# Short-Description: Start and stop OpenDKIM<br \/>\n# Description: DKIM milter<br \/>\n### END INIT INFO<\/p>\n<p># Adapted from Andrew Colin Kissa&#8217;sscript for dkim-milter &#8211; 28-05-2009<\/p>\n<p>. \/etc\/rc.d\/init.d\/functions<\/p>\n<p>DAEMON=\/usr\/local\/sbin\/opendkim<br \/>\nRETVAL=0<br \/>\nPID_FILE=\/var\/run\/opendkim\/dkim-milter.pid<\/p>\n<p>start() {<br \/>\necho -n $&#8221;Starting DKIM milter: &#8221;<br \/>\ndaemon $DAEMON -x \/etc\/opendkim.conf<br \/>\nRETVAL=$?<br \/>\n[ $RETVAL -eq 0 ] &amp;&amp; touch \/var\/lock\/subsys\/opendkim<br \/>\necho<br \/>\nreturn $RETVAL<br \/>\n}<\/p>\n<p>stop() {<br \/>\necho -n $&#8221;Stopping DKIM milter: &#8221;<br \/>\nkillproc -p $PID_FILE<br \/>\nRETVAL=$?<br \/>\necho<br \/>\n[ $RETVAL -eq 0 ] &amp;&amp; rm -f \/var\/lock\/subsys\/opendkim<br \/>\nreturn $RETVAL<br \/>\n}<\/p>\n<p>restart() {<br \/>\nstop<br \/>\nstart<br \/>\n}<\/p>\n<p>case &#8220;$1&#8243; in<br \/>\nstart)<br \/>\nstart<br \/>\n;;<br \/>\nstop)<br \/>\nstop<br \/>\n;;<br \/>\nrestart)<br \/>\nrestart<br \/>\n;;<br \/>\nstatus)<br \/>\nstatus -p $PID_FILE<br \/>\n;;<br \/>\ncondrestart)<br \/>\n[ -f \/var\/lock\/subsys\/opendkim ] &amp;&amp; restart || :<br \/>\n;;<br \/>\n*)<br \/>\necho $&#8221;Usage: $0 {start|stop|status|reload|restart|condrestart}&#8221;<br \/>\nexit 1<br \/>\nesac<\/p>\n<p>exit $?<br \/>\n==============<\/p>\n<p>4. Generating keys for DKIM signing<\/p>\n<p>You will need to generate a pair of keys for each domain you want to sign mail for, a public and a private key. OpenDKIM has a script included that will help do this. Where the keys are kept is up to you but here we create a directory inside \/etc\/mail\/dkim\/keys\u00e2\u20ac\u00a6<\/p>\n<p>============<br \/>\nmkdir \/etc\/mail\/dkim\/keys\/example.com<br \/>\nopendkim-genkey.sh -D \/etc\/mail\/dkim\/keys\/example.com\/ -d example.com -s default<br \/>\nchown -R opendkim-milt:opendkim-milt \/etc\/mail\/dkim\/example.com<br \/>\nmv \/etc\/mail\/dkim\/keys\/example.com\/default.private \/etc\/mail\/dkim\/keys\/example.com\/default<br \/>\n============<\/p>\n<p>&nbsp;<\/p>\n<p>1. Install prerequisites<\/p>\n<p>===========<br \/>\nyum install sendmail-devel openssl-devel<br \/>\n===========<\/p>\n<p>2. Install OpenDKIM<\/p>\n<p>Download then extract OpenDKIM. Change to the extracted directory and run configure, make and then, as root, make install<\/p>\n<p>============<br \/>\nwget http:\/\/downloads.sourceforge.net\/project\/opendkim\/opendkim-2.4.2.tar.gz<br \/>\ntar -zxf opendkim-2.4.2.tar.gz<br \/>\ncd opendkim*<br \/>\n.\/configure<br \/>\nmake &amp;&amp; make install<br \/>\n============<\/p>\n<p>3. Post install steps<\/p>\n<p>Create a Linux user for OpenDKIM, then make some directories to store your keys and config files in.<\/p>\n<p>==========<br \/>\nuseradd -s \/sbin\/nologin -b \/var\/run\/opendkim opendkim-milt<br \/>\nmkdir \/etc\/mail\/dkim<br \/>\nmkdir \/etc\/mail\/dkim\/keys<br \/>\nchown -R opendkim-milt:opendkim-milt \/etc\/mail\/dkim<br \/>\nchmod -R go-wrx \/etc\/mail\/dkim\/keys<br \/>\n==========<\/p>\n<p>Check for startup script (\/etc\/init.d\/opendkim). If not present, use this:<\/p>\n<p>============<br \/>\n#!\/bin\/bash<br \/>\n#<br \/>\n# opendkim\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Start and stop opendkim.<\/p>\n<p># chkconfig: &#8211; 41 61<br \/>\n# description: opendkim<br \/>\n# processname: opendkim<br \/>\n# pidfile: \/var\/run\/opendkim\/dkim-milter.pid<\/p>\n<p>### BEGIN INIT INFO<br \/>\n# Provides: opendkim<br \/>\n# Required-Start: opendkim<br \/>\n# Required-Stop: opendkim<br \/>\n# Short-Description: Start and stop OpenDKIM<br \/>\n# Description: DKIM milter<br \/>\n### END INIT INFO<\/p>\n<p># Adapted from Andrew Colin Kissa&#8217;sscript for dkim-milter &#8211; 28-05-2009<\/p>\n<p>. \/etc\/rc.d\/init.d\/functions<\/p>\n<p>DAEMON=\/usr\/local\/sbin\/opendkim<br \/>\nRETVAL=0<br \/>\nPID_FILE=\/var\/run\/opendkim\/dkim-milter.pid<\/p>\n<p>start() {<br \/>\necho -n $&#8221;Starting DKIM milter: &#8221;<br \/>\ndaemon $DAEMON -x \/etc\/opendkim.conf<br \/>\nRETVAL=$?<br \/>\n[ $RETVAL -eq 0 ] &amp;&amp; touch \/var\/lock\/subsys\/opendkim<br \/>\necho<br \/>\nreturn $RETVAL<br \/>\n}<\/p>\n<p>stop() {<br \/>\necho -n $&#8221;Stopping DKIM milter: &#8221;<br \/>\nkillproc -p $PID_FILE<br \/>\nRETVAL=$?<br \/>\necho<br \/>\n[ $RETVAL -eq 0 ] &amp;&amp; rm -f \/var\/lock\/subsys\/opendkim<br \/>\nreturn $RETVAL<br \/>\n}<\/p>\n<p>restart() {<br \/>\nstop<br \/>\nstart<br \/>\n}<\/p>\n<p>case &#8220;$1&#8243; in<br \/>\nstart)<br \/>\nstart<br \/>\n;;<br \/>\nstop)<br \/>\nstop<br \/>\n;;<br \/>\nrestart)<br \/>\nrestart<br \/>\n;;<br \/>\nstatus)<br \/>\nstatus -p $PID_FILE<br \/>\n;;<br \/>\ncondrestart)<br \/>\n[ -f \/var\/lock\/subsys\/opendkim ] &amp;&amp; restart || :<br \/>\n;;<br \/>\n*)<br \/>\necho $&#8221;Usage: $0 {start|stop|status|reload|restart|condrestart}&#8221;<br \/>\nexit 1<br \/>\nesac<\/p>\n<p>exit $?<br \/>\n============<\/p>\n<p>4. Generating keys for DKIM signing<\/p>\n<p>You will need to generate a pair of keys for each domain you want to sign mail for, a public and a private key. OpenDKIM has a script included that will help do this. Where the keys are kept is up to you but here we create a directory inside \/etc\/mail\/dkim\/keys\u00e2\u20ac\u00a6<\/p>\n<p>===========<br \/>\nmkdir \/etc\/mail\/dkim\/keys\/example.com<br \/>\nopendkim-genkey.sh -D \/etc\/mail\/dkim\/keys\/example.com\/ -d example.com -s default<br \/>\nchown -R opendkim-milt:opendkim-milt \/etc\/mail\/dkim\/example.com<br \/>\nmv \/etc\/mail\/dkim\/keys\/example.com\/default.private \/etc\/mail\/dkim\/keys\/example.com\/default<br \/>\n===========<\/p>\n<p>\u00e2\u20ac\u02dc-s\u00e2\u20ac\u2122 is the selector, here I have used default, you can use anything like mail or dk or dkim or sample.<\/p>\n<p>5. OpenDKIM configuration<\/p>\n<p>We need to edit one config file and create two \u00e2\u20ac\u02dctable\u00e2\u20ac\u2122 files that the OpenDKIM milter will use to know what to do with the mails.<\/p>\n<p>Edit \/etc\/opendkim.conf<\/p>\n<p>These options should work:<\/p>\n<p>==================<br \/>\n##<br \/>\n## opendkim.conf &#8212; configuration file for OpenDKIM filter<br \/>\n##<br \/>\n## $Id: opendkim.conf.sample,v 1.5 2010\/03\/05 03:32:12 mmarkley Exp $<br \/>\n##<br \/>\n#ADSPDiscard\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Yes<br \/>\nADSPNoSuchDomain\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Yes<br \/>\nAutoRestart\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Yes<br \/>\nAutoRestartRate\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 10\/1h<br \/>\nCanonicalization\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 relaxed\/relaxed<br \/>\nKeyTable\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 refile:\/etc\/mail\/opendkim\/keyTable<br \/>\nLogWhy\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Yes<br \/>\nOn-Default\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 reject<br \/>\nOn-BadSignature\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 reject<br \/>\nOn-DNSError\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 tempfail<br \/>\nOn-InternalError\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 accept<br \/>\nOn-NoSignature\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 accept<br \/>\nOn-Security\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 discard<br \/>\nPidFile\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 \/var\/run\/opendkim\/dkim-milter.pid<br \/>\nSignatureAlgorithm\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 rsa-sha256<br \/>\nSigningTable\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 refile:\/etc\/mail\/opendkim\/signingTable<br \/>\nSocket\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 inet:20209@localhost<br \/>\nSyslog\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Yes<br \/>\nSyslogSuccess\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Yes<br \/>\nTemporaryDirectory\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 \/var\/tmp<br \/>\nUMask\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 022<br \/>\nUserID\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 opendkim-milt:opendkim-milt<br \/>\nX-Header\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Yes<br \/>\n==================<\/p>\n<p>ii) \/etc\/mail\/opendkim\/signingTable<\/p>\n<p>This table is used to select one or more signatures to apply to a message based on the address found in the From: header field. Keys in this table vary depending on the type of table used; values in this data set should include one field that contains a name found in the KeyTable that identifies which key should be used in generating the signature, and an optional second field naming the signer of the message that will be included in the &#8220;i=&#8221; tag in the generated signature.<\/p>\n<p>If the first field contains only a &#8220;%&#8221; character, it will be replaced by the domain found in the From: header field. Similarly, within the optional second field, any &#8220;%&#8221; character will be replaced by the domain found in the From: header field.<\/p>\n<p>If this table specifies a regular expression file (&#8220;refile&#8221;), then the keys are wildcard patterns that are matched against the address found in the From: header field. Entries are checked in the order in which they appear in the file.<\/p>\n<p>For all other database types, the full user@host is checked first, then simply host, then user@.domain (with all superdomains checked in sequence, so &#8220;foo.example.com&#8221; would first check &#8220;user@foo.example.com&#8221;, then &#8220;user@.example.com&#8221;, then &#8220;user@.com&#8221;), then .domain, then user@*, and finally *.<\/p>\n<p>In any case, only the first match is applied, unless MultipleSignatures is enabled in which case all matches are applied.<\/p>\n<p>A working signingTable will look like this:<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n$ cat \/etc\/mail\/opendkim\/signingTable<br \/>\n*@espserv.com mail._domainkey.example.com<br \/>\n*@joseairosa.com mail._domainkey.example1.com<br \/>\n*@porvocacao.com mail._domainkey.example2.com<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p>6. Postfix configuration<\/p>\n<p>Add these to postfix&#8217;s main.cf file:<\/p>\n<p>============<br \/>\nsmtpd_milters\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 = inet:localhost:20209<br \/>\nnon_smtpd_milters\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 = inet:localhost:20209<br \/>\nmilter_protocol\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 = 2<br \/>\nmilter_default_action\u00c2\u00a0\u00c2\u00a0 = accept<br \/>\n============<\/p>\n<p>You can change the port if required. Reload postfix.<\/p>\n<p>7. DKIM DNS entries<\/p>\n<p>When you created the keys few steps back, you should have got two files, one the private key and the other a public key. Open the public key file and add the contents to your domain&#8217;s DNS.<\/p>\n<p>=============<br \/>\n$ cat mail.txt<br \/>\nmail._domainkey IN TXT &#8220;v=DKIM1; r=postmaster; g=*; k=rsa; t=y; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNSFbbde\/56vjZfTYRXe0w8J44fPmBwZgoIZsGfYFgQxCFKJ50NL2EVWGey9pWw+YrJEfec3nTlbcquxnmm92y7vsWM9B7sCyoYQIweepJBdkJ3boJXBlm3eXMqrOMJfYmqjn51Y5B0kuErgu\/N41S1Cr3\/BtQU3\/QZL0qnXi+6wIDAQAB&#8221;<br \/>\n=============<\/p>\n<p>While adding make sure that you remove the &#8220;r=postmaster&#8221; tag. This tag is still experimental and is not supported globally.<\/p>\n<p>Finally add a DKIM ADSP record which should look something like this:<\/p>\n<p>&#8212;&#8212;&#8212;-<br \/>\n_adsp._domainkey.example.com\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 IN\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 TXT\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 &#8220;dkim=unknown&#8221;<br \/>\n&#8212;&#8212;&#8212;-<\/p>\n<p>8. Start OpenDKIM<\/p>\n<p>=======<br \/>\nservice opendkim start<br \/>\n=======<\/p>\n<p>9. Add it to chkconfig so that openDKIM starts automatically on boot.<\/p>\n<p>=======<br \/>\nchkconfig &#8211;level 2345 opendkim on<br \/>\n=======<\/p>\n<p>10. Test. Send a mail to check-auth-username=gmail.com@verifier.port25.com. You will get the authentication results in username@gmail&#8217;s inbox.<\/p>\n<p>Use the following command to test and check if opendkim is being called by postfix or not.<\/p>\n<p>==========<br \/>\necho Test | mail -s test check-auth-username=gmail.com@verifier.port25.com ;tail -fn0 \/var\/log\/maillog<br \/>\n==========<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nOct\u00c2\u00a0 6 00:31:59 smtp01 sendmail[4579]: p964Vw7R004579: from=root, size=82, class=0, nrcpts=1, msgid=, relay=root@localhost<br \/>\nOct\u00c2\u00a0 6 00:31:59 smtp01 postfix\/smtpd[4581]: connect from localhost.localdomain[127.0.0.1]<br \/>\nOct\u00c2\u00a0 6 00:31:59 smtp01 postfix\/smtpd[4581]: setting up TLS connection from localhost.localdomain[127.0.0.1]<br \/>\nOct\u00c2\u00a0 6 00:31:59 smtp01 postfix\/smtpd[4581]: Anonymous TLS connection established from localhost.localdomain[127.0.0.1]: TLSv1 with cipher DHE-RSA-AES256-SHA (256\/256 bits)<br \/>\nOct\u00c2\u00a0 6 00:31:59 smtp01 sendmail[4579]: STARTTLS=client, relay=[127.0.0.1], version=TLSv1\/SSLv3, verify=FAIL, cipher=DHE-RSA-AES256-SHA, bits=256\/256<br \/>\nOct\u00c2\u00a0 6 00:31:59 smtp01 postfix\/smtpd[4581]: 36AD1B103: client=localhost.localdomain[127.0.0.1], sasl_sender=root@servername.com<br \/>\nOct\u00c2\u00a0 6 00:31:59 smtp01 postfix\/cleanup[4584]: 36AD1B103: message-id=<br \/>\n[b]Oct\u00c2\u00a0 6 00:31:59 smtp01 opendkim[4486]: 36AD1B103: DKIM-Signature header added (s=mail, d=domainname.com)[\/b]<br \/>\nOct\u00c2\u00a0 6 00:31:59 smtp01 postfix\/qmgr[3136]: 36AD1B103: from=, size=788, nrcpt=1 (queue active)<br \/>\nOct\u00c2\u00a0 6 00:31:59 smtp01 sendmail[4579]: p964Vw7R004579: to=check-auth-username=gmail.com@verifier.port25.com, ctladdr=root (0\/0), delay=00:00:01, xdelay=00:00:00, mailer=relay, pri=30082, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (Ok: queued as 36AD1B103)<br \/>\nOct\u00c2\u00a0 6 00:31:59 smtp01 postfix\/smtpd[4581]: disconnect from localhost.localdomain[127.0.0.1]<br \/>\nOct\u00c2\u00a0 6 00:32:01 smtp01 postfix\/smtp[4585]: 36AD1B103: to=, relay=verifier.port25.com[96.244.219.19]:25, delay=2, delays=0.09\/0.01\/1.5\/0.3, dsn=2.6.0, status=sent (250 2.6.0 message received)<br \/>\nOct\u00c2\u00a0 6 00:32:01 smtp01 postfix\/qmgr[3136]: 36AD1B103: removed<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<p>Check you inbox for the authentication results. You should get the following:<\/p>\n<p>==========================================================<br \/>\nSummary of Results<br \/>\n==========================================================<br \/>\n&#8230;<br \/>\nDKIM check:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 pass<br \/>\n&#8230;<br \/>\n==========================================================<br \/>\nDetails:<br \/>\n==========================================================<br \/>\n&#8230;<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\nDKIM check details:<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\nResult:\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 pass (signature verifies; identity doesn&#8217;t match any headers)<br \/>\nID(s) verified: header.d=domainname.com<br \/>\nCanonicalized Headers:<br \/>\ndate:Thu,&#8217;20&#8217;6&#8217;20&#8217;Oct&#8217;20&#8217;2011&#8217;20&#8217;00:31:58&#8217;20&#8217;-0400&#8217;0D&#8221;0A&#8217;<br \/>\nfrom:root&#8217;20&#8221;0D&#8221;0A&#8217;<br \/>\nmessage-id:&#8217;0D&#8221;0A&#8217;<br \/>\nto:check-auth-username=gmail.com@verifier.port25.com&#8217;0D&#8221;0A&#8217;<br \/>\nsubject:test&#8217;0D&#8221;0A&#8217;<br \/>\ndkim-signature:v=1;&#8217;20&#8217;a=rsa-sha256;&#8217;20&#8217;c=relaxed\/relaxed;&#8217;20&#8217;d=domainname.com;&#8217;20&#8217;s=mail;&#8217;20&#8217;t=1317875519;&#8217;20&#8217;bh=fdkeB\/A0FkbVP2k4J4pNPoeWH6vqBm9+b0C3OY87Cw8=;&#8217;20&#8217;h=Date:From:Message-Id:To:Subject;&#8217;20&#8217;b=<\/p>\n<p>Canonicalized Body:<br \/>\nTest&#8217;0D&#8221;0A&#8217;<\/p>\n<p>DNS record(s):<br \/>\nmail._domainkey.domainname.com. 1800 IN TXT &#8220;v=DKIM1; g=*; k=rsa; t=y; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA1X6GKfaUhV3jthv32C5lo\/V3\/4yOys9CsZZByYId2NJnfRWiZroEozl6\/4XyQhdb2JPNMRT8xcWd+RqSRfyszb9DzlEhfk4q0PpP7QFhtEzpUVSGrsNiSutkY56JkoQRblrrbrKUNgu5U0GTaFuNUnpj2\/kHmEeIGcCk9we9eQIDAQAB&#8221;<\/p>\n<p>NOTE: DKIM checking has been performed based on the latest DKIM specs<br \/>\n(RFC 4871 or draft-ietf-dkim-base-10) and verification may fail for<br \/>\nolder versions.\u00c2\u00a0 If you are using Port25&#8217;s PowerMTA, you need to use<br \/>\nversion 3.2r11 or later to get a compatible version of DKIM.<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>If you receive the above results, all is good.<\/p>\n<p>11. You can automate the key generation and setting up permissions on keys using this script.<\/p>\n<p>==================<br \/>\n#!\/bin\/bash<br \/>\nread -p &#8220;Enter your domain name : &#8221; domain_name<br \/>\nif [ -f $domain_name ];<br \/>\nthen<br \/>\necho &#8220;Enter valid domain name&#8221;<br \/>\nelse<br \/>\nif [ -d \/etc\/mail\/opendkim\/keys\/$domain_name ];<br \/>\nthen<br \/>\necho &#8220;Domain already added&#8221;<br \/>\nelse<br \/>\nmkdir \/etc\/mail\/opendkim\/keys\/$domain_name<br \/>\necho -e &#8220;Generating key&#8230;&#8230;\\n&#8221;<\/p>\n<p>opendkim-genkey -d $domain_name -s mail -t -D \/etc\/mail\/opendkim\/keys\/$domain_name\/<br \/>\nchown -R opendkim-milt \/etc\/mail\/opendkim\/keys\/$domain_name<br \/>\ncp \/etc\/mail\/opendkim\/keyTable \/etc\/mail\/opendkim\/keyTable_bak_before_$domain_name<br \/>\necho &#8220;mail._domainkey.$domain_name $domain_name:mail:\/etc\/mail\/opendkim\/keys\/$domain_name\/mail.private&#8221; &gt;&gt; \/etc\/mail\/opendkim\/keyTable<br \/>\necho &#8220;*@$domain_name mail._domainkey.$domain_name&#8221; &gt;&gt; \/etc\/mail\/opendkim\/signingTable<br \/>\necho -e &#8220;Restarting opendkim&#8230;&#8230;&#8230;\\n&#8221;<br \/>\n\/etc\/init.d\/opendkim restart<br \/>\necho -e &#8220;\\nAdd the following public key in the domains DNS zone file \\n&#8221;<br \/>\necho -e &#8220;\\n=============================&#8221;<br \/>\necho `cat \/etc\/mail\/opendkim\/keys\/$domain_name\/mail.txt|sed &#8216;s\/r\\=postmaster\\;\/\/g&#8217;`<br \/>\necho &#8220;=============================&#8221;<br \/>\nfi<br \/>\nfi<br \/>\n==================<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>1. Install prerequisites=========== yum install sendmail-devel openssl-devel ===========2. Install OpenDKIM Download then extract OpenDKIM. Change to the extracted directory and run configure, make and then, as root, make install. =========== wget http:\/\/downloads.sourceforge.net\/project\/opendkim\/opendkim-2.4.2.tar.gz tar -zxf opendkim-2.4.2.tar.gz cd opendkim* .\/configure make &amp;&amp; make install =========== 3. Post install steps Create a Linux&hellip; <a href=\"https:\/\/pheonixsolutions.com\/blog\/install-dkim-in-postfix-using-opendkim\/\" class=\"more-link read-more\" rel=\"bookmark\">Continue Reading <span class=\"screen-reader-text\">Install DKIM in Postfix using openDKIM<\/span><i class=\"fa fa-arrow-right\"><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[202,201,203,171],"class_list":{"0":"post-49","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"hentry","6":"category-uncategorized","7":"tag-dkim","8":"tag-domainkeys","9":"tag-installation","10":"tag-postfix","11":"h-entry","13":"h-as-article"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Pheonix Solutions - We Empower Your Business Growth<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/pheonixsolutions.com\/blog\/install-dkim-in-postfix-using-opendkim\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pheonix Solutions - We Empower Your Business Growth\" \/>\n<meta property=\"og:description\" content=\"1. Install prerequisites=========== yum install sendmail-devel openssl-devel ===========2. Install OpenDKIM Download then extract OpenDKIM. Change to the extracted directory and run configure, make and then, as root, make install. =========== wget http:\/\/downloads.sourceforge.net\/project\/opendkim\/opendkim-2.4.2.tar.gz tar -zxf opendkim-2.4.2.tar.gz cd opendkim* .\/configure make &amp;&amp; make install =========== 3. Post install steps Create a Linux&hellip; Continue Reading Install DKIM in Postfix using openDKIM\" \/>\n<meta property=\"og:url\" content=\"https:\/\/pheonixsolutions.com\/blog\/install-dkim-in-postfix-using-opendkim\/\" \/>\n<meta property=\"og:site_name\" content=\"PHEONIXSOLUTIONS\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/PheonixSolutions-209942982759387\/\" \/>\n<meta property=\"article:published_time\" content=\"2012-04-25T05:50:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-06-24T11:40:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/pheonixsolutions.com\/blog\/wp-content\/uploads\/2016\/09\/PX2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"3837\" \/>\n\t<meta property=\"og:image:height\" content=\"2540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@pheonixsolution\" \/>\n<meta name=\"twitter:site\" content=\"@pheonixsolution\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/install-dkim-in-postfix-using-opendkim\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/install-dkim-in-postfix-using-opendkim\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/0ffa33d73c869faec2d50e79c24e3503\"},\"headline\":\"Install DKIM in Postfix using openDKIM\",\"datePublished\":\"2012-04-25T05:50:00+00:00\",\"dateModified\":\"2016-06-24T11:40:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/install-dkim-in-postfix-using-opendkim\\\/\"},\"wordCount\":1974,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/#organization\"},\"keywords\":[\"DKIM\",\"Domainkeys\",\"installation\",\"Postfix\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/install-dkim-in-postfix-using-opendkim\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/install-dkim-in-postfix-using-opendkim\\\/\",\"url\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/install-dkim-in-postfix-using-opendkim\\\/\",\"name\":\"Pheonix Solutions - We Empower Your Business Growth\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/#website\"},\"datePublished\":\"2012-04-25T05:50:00+00:00\",\"dateModified\":\"2016-06-24T11:40:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/install-dkim-in-postfix-using-opendkim\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/install-dkim-in-postfix-using-opendkim\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/install-dkim-in-postfix-using-opendkim\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Install DKIM in Postfix using openDKIM\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/\",\"name\":\"Pheonix Solutions\",\"description\":\"We Empower Your Business Growth\",\"publisher\":{\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/#organization\",\"name\":\"PheonixSolutions\",\"url\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/12\\\/logo.png\",\"contentUrl\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/12\\\/logo.png\",\"width\":454,\"height\":300,\"caption\":\"PheonixSolutions\"},\"image\":{\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/PheonixSolutions-209942982759387\\\/\",\"https:\\\/\\\/x.com\\\/pheonixsolution\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/0ffa33d73c869faec2d50e79c24e3503\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09bacc0294abee1322a23ab4bc6a0330dd4cb4df707dc9d0b0efeba6c109608b?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09bacc0294abee1322a23ab4bc6a0330dd4cb4df707dc9d0b0efeba6c109608b?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09bacc0294abee1322a23ab4bc6a0330dd4cb4df707dc9d0b0efeba6c109608b?s=96&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"http:\\\/\\\/blog.pheonixsolutions.com\"],\"url\":\"https:\\\/\\\/pheonixsolutions.com\\\/blog\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pheonix Solutions - We Empower Your Business Growth","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/pheonixsolutions.com\/blog\/install-dkim-in-postfix-using-opendkim\/","og_locale":"en_US","og_type":"article","og_title":"Pheonix Solutions - We Empower Your Business Growth","og_description":"1. Install prerequisites=========== yum install sendmail-devel openssl-devel ===========2. Install OpenDKIM Download then extract OpenDKIM. Change to the extracted directory and run configure, make and then, as root, make install. =========== wget http:\/\/downloads.sourceforge.net\/project\/opendkim\/opendkim-2.4.2.tar.gz tar -zxf opendkim-2.4.2.tar.gz cd opendkim* .\/configure make &amp;&amp; make install =========== 3. Post install steps Create a Linux&hellip; Continue Reading Install DKIM in Postfix using openDKIM","og_url":"https:\/\/pheonixsolutions.com\/blog\/install-dkim-in-postfix-using-opendkim\/","og_site_name":"PHEONIXSOLUTIONS","article_publisher":"https:\/\/www.facebook.com\/PheonixSolutions-209942982759387\/","article_published_time":"2012-04-25T05:50:00+00:00","article_modified_time":"2016-06-24T11:40:48+00:00","og_image":[{"width":3837,"height":2540,"url":"https:\/\/pheonixsolutions.com\/blog\/wp-content\/uploads\/2016\/09\/PX2.png","type":"image\/png"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@pheonixsolution","twitter_site":"@pheonixsolution","twitter_misc":{"Written by":"admin","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/pheonixsolutions.com\/blog\/install-dkim-in-postfix-using-opendkim\/#article","isPartOf":{"@id":"https:\/\/pheonixsolutions.com\/blog\/install-dkim-in-postfix-using-opendkim\/"},"author":{"name":"admin","@id":"https:\/\/pheonixsolutions.com\/blog\/#\/schema\/person\/0ffa33d73c869faec2d50e79c24e3503"},"headline":"Install DKIM in Postfix using openDKIM","datePublished":"2012-04-25T05:50:00+00:00","dateModified":"2016-06-24T11:40:48+00:00","mainEntityOfPage":{"@id":"https:\/\/pheonixsolutions.com\/blog\/install-dkim-in-postfix-using-opendkim\/"},"wordCount":1974,"commentCount":0,"publisher":{"@id":"https:\/\/pheonixsolutions.com\/blog\/#organization"},"keywords":["DKIM","Domainkeys","installation","Postfix"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/pheonixsolutions.com\/blog\/install-dkim-in-postfix-using-opendkim\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/pheonixsolutions.com\/blog\/install-dkim-in-postfix-using-opendkim\/","url":"https:\/\/pheonixsolutions.com\/blog\/install-dkim-in-postfix-using-opendkim\/","name":"Pheonix Solutions - We Empower Your Business Growth","isPartOf":{"@id":"https:\/\/pheonixsolutions.com\/blog\/#website"},"datePublished":"2012-04-25T05:50:00+00:00","dateModified":"2016-06-24T11:40:48+00:00","breadcrumb":{"@id":"https:\/\/pheonixsolutions.com\/blog\/install-dkim-in-postfix-using-opendkim\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/pheonixsolutions.com\/blog\/install-dkim-in-postfix-using-opendkim\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/pheonixsolutions.com\/blog\/install-dkim-in-postfix-using-opendkim\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/pheonixsolutions.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Install DKIM in Postfix using openDKIM"}]},{"@type":"WebSite","@id":"https:\/\/pheonixsolutions.com\/blog\/#website","url":"https:\/\/pheonixsolutions.com\/blog\/","name":"Pheonix Solutions","description":"We Empower Your Business Growth","publisher":{"@id":"https:\/\/pheonixsolutions.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/pheonixsolutions.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/pheonixsolutions.com\/blog\/#organization","name":"PheonixSolutions","url":"https:\/\/pheonixsolutions.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/pheonixsolutions.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/pheonixsolutions.com\/blog\/wp-content\/uploads\/2016\/12\/logo.png","contentUrl":"https:\/\/pheonixsolutions.com\/blog\/wp-content\/uploads\/2016\/12\/logo.png","width":454,"height":300,"caption":"PheonixSolutions"},"image":{"@id":"https:\/\/pheonixsolutions.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/PheonixSolutions-209942982759387\/","https:\/\/x.com\/pheonixsolution"]},{"@type":"Person","@id":"https:\/\/pheonixsolutions.com\/blog\/#\/schema\/person\/0ffa33d73c869faec2d50e79c24e3503","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/09bacc0294abee1322a23ab4bc6a0330dd4cb4df707dc9d0b0efeba6c109608b?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/09bacc0294abee1322a23ab4bc6a0330dd4cb4df707dc9d0b0efeba6c109608b?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/09bacc0294abee1322a23ab4bc6a0330dd4cb4df707dc9d0b0efeba6c109608b?s=96&r=g","caption":"admin"},"sameAs":["http:\/\/blog.pheonixsolutions.com"],"url":"https:\/\/pheonixsolutions.com\/blog\/author\/admin\/"}]}},"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p7F4uM-N","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/49","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=49"}],"version-history":[{"count":0,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/49\/revisions"}],"wp:attachment":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=49"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=49"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=49"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}