Я пытаюсь сохранить несколько задач и отправить несколько писем для каждого пользователя. Мой код в ближайшее время выглядит следующим образом:Phpmailer Multiple Mail
<?php
//Save All
foreach($_POST['decode'] as $dcode){
$sec = mysql_query("SELECT owner,mcode FROM members WHERE mcode='$dcode' ORDER BY id ASC");
while($list = mysql_fetch_array($sec)){$mcode=$list[mcode];$owner=$list[owner];}
if (mysql_query ("INSERT INTO tasks (tcode,adder,tdt,title,mcode,subject)
values ('$tcode','$adder','$tdt','$title','$mcode','$subject')")){
echo $owner.' done.<br>';header ("refresh: 5; url=members.php");
//Send info
include("scripts/class.phpmailer.php");
//To who
$sec = mysql_query("SELECT name,em FROM members WHERE mcode='$mcode' ORDER BY id ASC");
while($list = mysql_fetch_array($sec)){$name = $list[name];$em = $list[em];}
//Sender
$sec = mysql_query("SELECT owner FROM members WHERE mcode='$owner' ORDER BY id ASC");
while($list = mysql_fetch_array($sec)){$owner = $list[owner];}
$mail= new PHPMailer();
$mail->AddAddress($em , $name);
$mail->Subject=$owner."has send mail";
$mail->Body="content";
$mail->IsSMTP();
$mail->Host="host.host.com";
$mail->SMTPAuth=true;
$mail->Username="username";
$mail->Password="pass";
$mail->IsHTML(true);
$mail->From="sendermail";
$mail->FromName="Sender";
$mail->Port="587";
$done=$mail->Send();
// Check Mail
if(!$done){echo "Error! Mail not send";}else{echo "Mail send";}
}else{echo "Not Saved";}
}//Save All
?>
Это экономит ваши задачи. И отправляет одно письмо. Но я не могу отправить несколько писем для каждой задачи.
PHPMailer посылает сообщение об ошибке: Не удается объявить класс Я попробовал этот путь для этой ошибки:
if(class_exists('PHPMailer') != true){$mail= new PHPMailer();}
И это говорит вызов функции члена AddAddress() И ив попробовал этот путь :
$mail->ClearAddresses();
И я думаю, что я помещаю коды в неправильные области. Могу ли вы, пожалуйста, помогите мне исправить это. Я искал «стек» и попробовал несколько методов. Но они не работают на моем. Я думаю, что о команде foreach.
mysql_ * устарел, и у вас возникли проблемы с sql-инъекциями в вашем коде. Они находятся вне сферы вашего ответа, но, пожалуйста, исправьте их, прежде чем использовать это. Вместо этого используйте mysqli/PDO – Zarathuztra
@ Zarazthuztra благодарит за замечательного человека. Но я новичок в кодировании. Могу ли вы отправить мне источник для объяснений. –
Абсолютно чувак! Вот документы на mysqli http://us2.php.net/manual/en/book.mysqli.php. Его можно использовать процедурно, точно так же, как mysql_ *, или объектно-ориентированным способом (который я рекомендую учиться в любом случае). Так что это действительно не так уж и отличается от того, к чему вы привыкли, только некоторые незначительные хитрости. Что касается SQL-инъекции, просто используйте подготовленные команды mysqli. Бросьте мне строку, если у вас есть вопросы о них, но документы довольно хороши. – Zarathuztra