Php sending email to multiple email address using check box

Hello,
i am not good at php so need some help.I have a php page with check box from where i am trying to send mail to multiple recipient. i can send mail but with little problem. when i select eg. 3 check box to send email then 1st email recipient is ok but 2nd email goes with 1st and 2nd recipient and 3rd email goes 1st,2nd,3rd recipient. i guess having problem with ‘foreach’. will someone pls help me to send individual email to individual recipient with my MySQL query’s.

Here is my code for mail.php page

<?php
	require_once('auth.php');
?>

    <html>
    <head>
    <title>PHPMailer - SMTP basic test with authentication</title>
    </head>
    <body>

    <?php
	include("Connections/connection.php");
    //error_reporting(E_ALL);
    error_reporting(E_STRICT);

    date_default_timezone_set('Europe/Dublin');

    require_once('php_mailer/class.phpmailer.php');
    //include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

    $mail = new PHPMailer();


    //$body = file_get_contents('contents.php');
    //$body = eregi_replace("[\\]",'',$body);

$sender_name		=	$_SESSION['sender_name'];
$sender_email		=	$_SESSION['sender_email'];
$sender_password	=	$_SESSION['sender_password'];


$id_user	=	$_POST["id_user"];

foreach ($id_tariff as $idt)
{
	$query = sprintf("SELECT From_Date, To_Date, first, last, city, country, Email_1, Email_2, account_name FROM user_info where id_user = $id_user");
	$result = mysql_query($query) or die(mysql_error());

	
$body = "
<table width='100%' border='1' cellspacing='0' cellpadding='3' bordercolor='#ffcccc'>
<tr>
<th bgcolor='#cc3333'>From</th>
<th bgcolor='#cc3333'>To</th>
<th bgcolor='#cc3333'>First Name</th>
<th bgcolor='#cc3333'>Last Name</th>
<th bgcolor='#cc3333'>City</th>
<th bgcolor='#cc3333'>country</th>
</tr>

";

 while($row = mysql_fetch_array($result)){
  $body .="<tr>";
  $body .="<td>".$row['From_Date']."</td>";
  $body .="<td bgcolor='#FFE8E8'>".$row['To_Date']."</td>";
  $body .="<td>".$row['first']."</td>";
  $body .="<td bgcolor='#FFE8E8'>".$row['last']."</td>";
  $body .="<td>".$row['city']."</td>";
  $body .="<td bgcolor='#FFE8E8'>".$row['country']."</td>";
  $body .="</tr>";
  $to1 = $row['Email_1'];
  $to2 = $row['Email_2'];
  $account_name = $row['account_name'];
 }
  $body .="</table>";


    $mail->IsSMTP(); // telling the class to use SMTP
    $mail->Host = "smtp.gmail.com"; // SMTP server
    $mail->SMTPDebug = 1; // enables SMTP debug information (for testing)
    // 1 = errors and messages
    // 2 = messages only
    $mail->SMTPAuth = true; // enable SMTP authentication
	$mail->SMTPSecure = "ssl";
    $mail->Host = "smtp.gmail.com"; // sets the SMTP server
    $mail->Port = 465; // set the SMTP port for the GMAIL server
    $mail->Username = "$sender_email"; // SMTP account username
    $mail->Password = "$sender_password"; // SMTP account password


	$mail->SetFrom($sender_email,$sender_name);

    $mail->AddReplyTo("$sender_email","$sender_name");


    $mail->Subject = "Hello Dear $account_name";


    $mail->AltBody = "To view the message, please use an HTML compatible email viewer!";

    $mail->MsgHTML($body);
	


    $mail->AddAddress($to1,$account_name);

    $mail->AddAddress($to2,$account_name);




    if(!$mail->Send()) {
    echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
    echo "YOUR E-MAIL HAS SENT";

	}


}
?>

    </body>
    </html>

Thanks in Advance

Im not familiar with the class you are using but i do see one “potential” issue.

you are calling
$mail = new PHPMailer();

before the foreach statement which isn’t a “critical” thing until you look at

$mail->AddAddress($to1,$account_name);
$mail->AddAddress($to2,$account_name);

which makes me think it is storing an array off addresses inside the class, and with out creating a “new” instance of the class each time you are storing a “new” email address to the current mail class objects array instead of creating a “new” object array

if that makes any sense, try the code below


<?php
	require_once('auth.php');
?>

<html>
  <head>
    <title>PHPMailer - SMTP basic test with authentication</title>
  </head>
  <body>
    <?php
	include("Connections/connection.php");
    //error_reporting(E_ALL);
    error_reporting(E_STRICT);
     
    date_default_timezone_set('Europe/Dublin');
     
    require_once('php_mailer/class.phpmailer.php');
    //include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded 
    //$body = file_get_contents('contents.php');
    //$body = eregi_replace("[\\]",'',$body);

	$sender_name		=	$_SESSION['sender_name'];
	$sender_email		=	$_SESSION['sender_email'];
	$sender_password	=	$_SESSION['sender_password'];
	
	 
	$id_user	=	$_POST["id_user"];
	
	foreach ($id_tariff as $idt)
	{
		$query = sprintf("SELECT From_Date, To_Date, first, last, city, country, Email_1, Email_2, account_name FROM user_info where id_user = $id_user");
		$result = mysql_query($query) or die(mysql_error());

	$body = "
	<table width='100%' border='1' cellspacing='0' cellpadding='3' bordercolor='#ffcccc'>
	<tr>
	<th bgcolor='#cc3333'>From</th>
	<th bgcolor='#cc3333'>To</th>
	<th bgcolor='#cc3333'>First Name</th>
	<th bgcolor='#cc3333'>Last Name</th>
	<th bgcolor='#cc3333'>City</th>
	<th bgcolor='#cc3333'>country</th>
	</tr>
	
	";
	  
	 while($row = mysql_fetch_array($result)){
	  $body .="<tr>";
	  $body .="<td>".$row['From_Date']."</td>";
	  $body .="<td bgcolor='#FFE8E8'>".$row['To_Date']."</td>";
	  $body .="<td>".$row['first']."</td>";
	  $body .="<td bgcolor='#FFE8E8'>".$row['last']."</td>";
	  $body .="<td>".$row['city']."</td>";
	  $body .="<td bgcolor='#FFE8E8'>".$row['country']."</td>";
	  $body .="</tr>";
	  $to1 = $row['Email_1'];
	  $to2 = $row['Email_2'];
	  $account_name = $row['account_name'];
	 }
	  $body .="</table>";
	
	    $mail = new PHPMailer();
	    $mail->IsSMTP(); // telling the class to use SMTP
	    $mail->Host = "smtp.gmail.com"; // SMTP server
	    $mail->SMTPDebug = 1; // enables SMTP debug information (for testing)
	    // 1 = errors and messages
	    // 2 = messages only
	    $mail->SMTPAuth = true; // enable SMTP authentication
		$mail->SMTPSecure = "ssl";
	    $mail->Host = "smtp.gmail.com"; // sets the SMTP server
	    $mail->Port = 465; // set the SMTP port for the GMAIL server
	    $mail->Username = "$sender_email"; // SMTP account username
	    $mail->Password = "$sender_password"; // SMTP account password
		$mail->SetFrom($sender_email,$sender_name);   
	    $mail->AddReplyTo("$sender_email","$sender_name");
	    $mail->Subject = "Hello Dear $account_name";
	    $mail->AltBody = "To view the message, please use an HTML compatible email viewer!";
	    $mail->MsgHTML($body);
	    //is where is seems me be an array
	    $mail->AddAddress($to1,$account_name);
	    $mail->AddAddress($to2,$account_name);
	
	    if(!$mail->Send()) {
	   		echo "Mailer Error: " . $mail->ErrorInfo;
	    } else {
	    	echo "YOUR E-MAIL HAS SENT";
		}

	}
	?>
    </body>
</html>

Dear JamesKenny,
Thanks for your Help.problem solved and it works great.

np glad to help