Witam, mam problem z wielokrotnym wysyłaniem e-maili. Otóż poniższy kod ma za zadanie wysyłać jednego maila ze kilkoma zleceniami. Jednak wysyła od tyle maili ile jest zleceń, np. mam 6 zleceń to wysyła 6 maili z 6 zleceniami w środku a mi zależy na 1 mailu z 6 zleceniami. Wiem, że tak się dzieje dlatego, że mam to w pętli foreach ale jak zrobię inaczej to wysyła 1 maila ale z 1 zleceniem. Ma ktoś pomysł jak to rozwiązać?
require_once('libs/class.phpmailer.php');
$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Host = KONTO_SMTP; // sets the SMTP server
//$mail->Port = 465; // set the SMTP port for the GMAIL server
$mail->Username = KONTO_REJESTRACJA_EMAIL; // SMTP account username
$mail->Password = KONTO_REJESTRACJA_HASLO; // SMTP account password
$mail->SetFrom(KONTO_REJESTRACJA_EMAIL, KONTO_REJESTRACJA_EMAIL);
$mail->AddReplyTo(KONTO_REJESTRACJA_EMAIL, KONTO_REJESTRACJA_EMAIL);
$mail->Subject = "Test";
$result = $db->query("SELECT * FROM zlecenia WHERE newsletter = '0' AND status = 'confirmed'");
foreach($result as $r){
$q3 = "SELECT * FROM wojewodztwa WHERE id_wojewodztwa=?";
$w3 = $db->prepare($q3);
$w3->execute(array($r['id_wojewodztwa']));
if ($w3->rowCount() > 0) {
while ($r3 = $w3->fetch(PDO::FETCH_ASSOC)) {
$id_wojewodztwa = $r3['id_wojewodztwa'];
$wojewodztwo = $r3['wojewodztwa_nazwa'];
}
}
for ($i = 0; $i < 3; $i++) {
if($i==0) {
$q4 = "select uk.*, u.email, u.is_email_zlecenie, u.login from users_kat uk
left outer join users_test u on u.id_users = uk.id_users
where id_kat3=".$r['id_kat3']." group by uk.id_users";
} elseif($i==1) {
$q4 = "select uk.*, u.email, u.is_email_zlecenie, u.login from users_kat uk
left outer join users_test u on u.id_users = uk.id_users
where id_kat2=".$r['id_kat2']." and id_kat3=0 group by uk.id_users";
} elseif($i==2) {
$q4 = "select uk.*, u.email, u.is_email_zlecenie, u.login from users_kat uk
left outer join users_test u on u.id_users = uk.id_users
where id_kat1=".$r['id_kat1']." and id_kat2=0 and id_kat3=0 group by uk.id_users";
}
$tests = $db->prepare("SELECT * FROM zlecenia WHERE newsletter = '0' AND status = 'confirmed' AND id_wojewodztwa=$id_wojewodztwa AND id_kat3=".$r['id_kat3']." OR (id_kat2=".$r['id_kat2']." and id_kat3=0) OR (id_kat1=".$r['id_kat1']." and id_kat2=0 and id_kat3=0)");
$w4 = $db->prepare($q4);
$w4->execute();
while ($r4 = $w4->fetch(PDO::FETCH_ASSOC)) {
$body = '<div style=" width:100%; text-align:center; font-size:12px; line-height:20px; "><div style="width:500px; text-align:left;"><br /><br /><img src="'.$logo.'" border="0"><div style="margin:40px 0; padding:35px 20px 50px 20px; border-top: 2px solid #000000; border-bottom: 2px solid #000000; background-color:#fff;">
<strong>Witaj '.$r4['login'].',</strong><br/><br/>
Zlecenie skierowane do usługodawców z województwa: '.$wojewodztwo;
$tests->execute();
while ($test = $tests->fetch(PDO::FETCH_ASSOC)) {
$body .= '<br><br><strong>'.$test['nazwa_zlecenia'].'</strong><br/><br/>'.$test['opis_zlecenia'].'<br /><br/><a href="http://www.tufachowiec.pl/zlecenie/'.txt2url($test['nazwa_zlecenia']).','.$test['id_zlecenia'].'/" style="color:#0000ee;">Zobacz dane kontaktowe zleceniodawcy.</a>';
}
$mail->MsgHTML($body);
$mail->AddAddress($r4['email'], $r4['email']);
if ($mail->send()) {
echo "Wysłano!";
// UPDATE zlecenia SET newsletter=1 WHERE id_zlecenia=".$r['id_zlecenia']
}
$mail->clearAddresses();
}}}