2016-02-21 5 views
0

У меня возникли проблемы с отправкой нескольких писем с помощью phpmailer. Если я отправлю только 1 электронное письмо, письмо можно отправить без каких-либо ошибок. Пытался искать и проводить тестирование, но с неудачными результатами. Может кто-нибудь проверить, что я сделал неправильно, ниже приведены коды.Отправить несколько электронных писем в PHPMailer

Я использую GET для отправки данных на страницу mail.php для обработки почты. Ниже приведено мое кодирование для ссылки get,

//php and mySQL coding to select email from db 
$emailKJ_string = implode(",",$emailKJ); 
<iframe style="border:0;" src="http://www.ktmparking.com.my/staff/mail.php?emailKJ[]=<?php echo $emailKJ_string;?>&nama=<?php echo $nama;?>"></iframe> 

Электронная почта пользователя взята из базы данных. Ниже приведены коды для моей mail.php для обработки PHPMailer,

if(isset($_GET['nama'])){ 
    $nama=$_GET['nama']; 
} 
require '../staff/PHPMailer/PHPMailerAutoload.php'; 
$mail = new PHPMailer; 
$mail->isSMTP();          // Set mailer to use SMTP 
$mail->Host = '*my_host_name*'; // Specify main and backup SMTP servers 
$mail->SMTPDebug = 2; 
$mail->SMTPAuth = true;        // Enable SMTP authentication 
$mail->Username = '*myusermane*';     // SMTP username 
$mail->Password = '*mypassword*';       // SMTP password 
$mail->SMTPSecure = 'tls';       // Enable TLS encryption, `ssl` also accepted 
$mail->Port = 587;         // TCP port to connect to 
$mail->setFrom('[email protected]', 'HR-KTMBCP'); 
$to=explode(",",$_GET['emailKJ']); 
foreach($to as $emails) 
{ 
    $mail->AddAddress($emails); 
} 
//other codes for phpmailer 

Это ошибка, которую я получил,

Warning: explode() expects parameter 2 to be string, array given in /home/ktm10001/public_html/staff/mail.php on line 22 

Warning: Invalid argument supplied for foreach() in /home/ktm10001/public_html/staff/mail.php on line 23 
Message could not be sent.Mailer Error: You must provide at least one recipient email address. 

ответ

1

Если вы отдельные письма с кома - просто удалите скобки:

emailKJ=<?php echo $emailKJ_string;?> 

Если вы хотите передать массив через URI (и не делать взрываются mail.php) - вы должны пройти каждый адрес электронной почты, таким образом:

emailKJ[][email protected]&emailKJ[][email protected]&emailKJ[][email protected] 
+0

спасибо за подробности. Попробуем удалить '[]' и дать обновление – Amran

+0

Спасибо! Наконец, это работает! – Amran

1

вы отправляете массив не здесь строку.

см http://www.w3schools.com/php/func_string_explode.asp

попробовать это как $_GET['emailKJ'] является массив писем

$to = $_GET['emailKJ']; 

Вместо

$to=explode(",",$_GET['emailKJ']); 
+0

спасибо за детали. Я пробовал это, но теперь получил эту ошибку. 2016-02-21 04:42:47 \t Недействительный адрес: (addAnAddress to): kamran @ ktmparking.com.my, khairulamran.nazri @ gmail.com Сообщение не может быть отправлено. Ошибка: вы должны указать хотя бы один адрес электронной почты получателя. – Amran

+0

Что такое значение echo $ emailKJ_string; ? – C2486

+0

просто используйте _emailKJ_ вместо _emailKJ [] _ ​​в url и без изменений в вашем предыдущем коде, попробуйте это – C2486

Смежные вопросы