Wednesday, February 21, 2018

How to resolve DMARC and DKIM pass in mailer header in php

Hey    , Guy

I am sharing my experienced which I faced lot of effort to resolve the DKIM and DMARC fail issue on email sent.

Finally I resolved the issue using changing the header below and validate the html tag in your email body.


Here is the result of pass by google and test mailer

SPF:PASS with IP 203.85.210.401 Learn more
DKIM:'PASS' with domain gmail.com Learn more
DMARC:'PASS' 

function sendNewsLetter($id='', $to_name='', $to_address=''){

    $from_name    = 'Phptechnicalgroups';
    $from_address = 'contact@phptechnicalgroups.com';
    $reply_address = 'no-reply@phptechnicalgroups.com';
//hiddenUrl variable call when user read the email to identify
 $hiddenUrl      = 'http://phptechnicalgroups.blogspot.in/captcha.php?type=mailer_socialhub_february_2018&id='.$id;

$maildescription ='<html>
<head>

</head>

<body style="margin: 0; padding: 0;">
    <div style="display: none;">
        <img alt="" src="'.$hiddenUrl.'" width="0px" height="0px">
    </div>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Phptechnicalgroup - Social Hub Updates - January 2018</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
</body>
</html>';
     $subject  = "Subject your email";
    $mime_boundary = "----boundary text----".MD5(TIME().$id.TIME());
    $additional ='webmaster@phptechnicalgroups.blogspot.in';
    $headers .= 'Date:' .date('r', $_SERVER['REQUEST_TIME']) . "\r\n";
    $headers .= "Message-ID:<" . $_SERVER['REQUEST_TIME'] . md5($_SERVER['REQUEST_TIME']) .$id. "@" . $_SERVER['SERVER_NAME'] . ">\r\n";
    $headers .= "Return-Path:".$from_name."<".$reply_address.">\r\n";
    $headers .= "X-Mailer: PHP v".phpversion()."\r\n";
    $headers .= "X-Originating-IP:".$_SERVER['SERVER_ADDR']."\r\n";
    $headers .= "List-Unsubscribe: <mailto:".$from_address.">\r\n";
    $headers = "MIME-Version: 1.0" . "\r\n";
    $headers .= 'From: Intel Network Builders <contact@phptechnicalgroups.blogspot.in>' . "\r\n";
    $headers .= 'Bcc:  <nayakr.bikash@gmail.com>' . "\r\n";
    $headers .= 'Reply-To: Intel Network Builders <no-reply@phptechnicalgroups.blogspot.in>' . "\r\n";
    $headers .= "Content-Type: multipart/mixed; boundary=\"$mime_boundary\"\r\n";

//Create Email Body (HTML)
    $message = "--$mime_boundary\n";
    $message .= "Content-Type: text/html; charset=UTF-8\n";
    $message .= "Content-Transfer-Encoding: 8bit\n\n";
    $message .= "<html>\n";
    $message .= "<body>\n";
    $message .= $maildescription;
    $message .= "</body>\n";
    $message .= "</html>\n";
    $message .= "--$mime_boundary\n";
    
    $mailsent = mail($to_address, $subject, $message, $headers,'-f'.$additional);
    return ($mailsent)?(true):(false);
  }

Hopefully it will help you , thank you!

No comments:

Post a Comment