在PHPMailer中发送多个电子邮件

时间:2016-02-21 04:19:34

标签: php email phpmailer

我在使用phpmailer发送多封电子邮件时遇到问题。如果我只发送一封电子邮件,则可以发送电子邮件而不会出现任何错误。试图搜索并进行测试但结果失败。可能有人检查我做错了什么,下面是代码。

我正在使用GET将数据发送到页面mail.php以处理邮件。以下是我对获取链接的编码,

//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>

用户电子邮件来自数据库。以下是我的用于PhpMailer处理的mail.php的代码,

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('info@ktmparking.com.my', '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.

2 个答案:

答案 0 :(得分:1)

你在这里发送数组而不是字符串。

请参阅http://www.w3schools.com/php/func_string_explode.asp

尝试此操作,因为$_GET['emailKJ']是一组电子邮件

$to = $_GET['emailKJ'];

而不是

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

答案 1 :(得分:1)

如果您将电子邮件与昏迷分开 - 只需删除括号:

emailKJ=<?php echo $emailKJ_string;?>

如果你想通过URI传递数组(并且不要在mail.php中爆炸) - 你应该以这种方式传递每个电子邮件地址:

emailKJ[]=first@email.com&emailKJ[]=second@email.com&emailKJ[]=third@email.com...