www.in2net.com.au web desing melbourne
Sending Multiple Emails with PHP.
Wednesday 21st of April 2009 03:08:11 PM : Veiw all from News »

Recently we came across a reason to make a multi email-er without using email-er software. Not a big issue.
Just thought that this might be a common issue people come across so I would post a how to.
 


1. PUT ALL THE EMAIL ADDRESS'S IN AN ARRAY THIS CAN ALSO COME FROM AN SQL DATABASE OR A TEXT/XML FILE EX...
    $setEmailArray    = array("info@yourdomain.com.au", "info@hisdomain.com", "info@herdomain.net");

2. LOOP THROUGH THE EMAIL ARRAY
    for($i = 0; $i < count($setEmailArray); $i++){
    }

3. SET THE MESSAGE IN HTML FORMAT
$message = <<<EOF
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
   <title>Ready made template for you!</title>
   
   
   <!--ADD SOME STYLE -->
   <style type="text/css">
   <!--
   p, span {
      font-family:Arial, Helvetica, sans-serif;
      font-size:12px;
   }
   -->
   </style>
   </head>
      <body>
         <div id="container">
            <p><strong>THIS IS A TEST EMAIL MESSAGE!</strong></p>
         </div>
      </body>
   </html>
EOF;
/* END OF MESSAGE */

4. THIS EMAIL IS THE SENDER EMAIL ADDRESS
     $from      = "your-email@your-domain.com";

5. SET A SUBJECT OF YOUR CHOICE
    $subject    = 'THIS IS A SUBJECT';

6. SET UP THE EMAIL HEADERS
    $headers      = "From: $from\r\n";
    $headers   .= "Content-type: text/html; charset=iso-8859-1\r\n";

7. IN-CASE SOMEONE HAS TWO EMAIL ACCOUNTS SETUP ON THE SAME COMPUTER SOME EMAIL PROGRAMS LIKE OUTLOOK WILL ONLY SHOW ONE EMAIL AND DISCARD THE OTHER(S) SO WE GIVE THE (Message-ID:) A RANDOM NUMBER
    $headers   .= "Message-ID: <".time().rand(1,1000)."@".$_SERVER['SERVER_NAME'].">". "\r\n";

8. LETS PUT IT ALL TOGETHER AND SEND THE EMAIL
    mail($setEmailArray[$i], $subject, $message, $headers);

9. (OPTIONAL) -> PRINT ALL THE EMAIL ADDRESS'S
    echo '<p>EMAIL SENT TO : '.$setEmailArray[$i].'<BR /><p>';
9.a) AND THEN CLOSE THE LOOP
}

10. FINALLY PRINT THE MESSAGE
    echo $message;
?>


For the final code, Just copy and paste the code below and adjust the fields to suit your needs.