我在使用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.
答案 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...