我正在使用此代码向会员发送简报,现在的问题是,当我发送电子邮件时,它不会发送。我在cpanel中跟踪了电子邮件,发现电子邮件地址前面有“array”字样。这意味着当我发送到'email@domain.com'时,它会更改为'arrayemail@domain.com'。这是代码:
<?php
include("../include/config.php");
include_once("../include/functions/import.php");
verify_login_admin();
$adminurl = $config['adminurl'];
$thebaseurl = $config['baseurl'];
$sql = "SELECT USERID, username, email FROM members";
$executequery = $conn->Execute($sql);
$results= $executequery->getrows();
if($_POST['submitform'] == "1")
{
if(isset($_POST['USERID']))
{
foreach($_POST['USERID'] as $key)
{
$subject = $_POST['subject'];
$sendername = $config['site_name'];
//$bodymessage = "Dear " . $_POST['username'];
//$sendmailbody = "HI". $results[$i]. $key . $results[$i].$_POST['username'] .",";
$sendmailbody .= $_POST['message'];
$sendmailbody .= "";
$from = $config['site_name'].'<'.$config['site_email'].'>';
$sendto = $results[$i]. $key.',';
mailme($sendto,$sendername,$from,$subject,$sendmailbody,$bcc);
}
}
$message = "E-Mails / Newsletters sent successfully.";
Stemplate::assign('message',$message);
}
$mainmenu = "7";
$submenu = "2";
$bodymsg = $_POST['message'];
Stemplate::assign('subject',$subject);
Stemplate::assign('bodymsg',$bodymsg);
Stemplate::assign('mainmenu',$mainmenu);
Stemplate::assign('submenu',$submenu);
Stemplate::assign('results',$results);
STemplate::display("administrator/global_header.tpl");
STemplate::display("administrator/mass_newsletter.tpl");
STemplate::display("administrator/global_footer.tpl");
?>
答案 0 :(得分:0)
您似乎从查询中获取了所有行:
$results= $executequery->getrows();
^ plural
但是你从未实际遍历所有行,因此$results[$i]
将包含结果集中的一个完整行:包含USERID,用户名和电子邮件的数组。
当您使用字符串连接数组时,数组将生成文本array
。
这假设$i
是一个整数,但在你的代码中它根本没有定义。
您可能希望在某处循环结果集,如果使用foreach
,则根本不需要$i
变量:
foreach ($results as $result) {
// Build your e-mail addresses string?
...
}