数组被添加到电子邮件地址

时间:2017-01-14 11:39:53

标签: php arrays email

我正在使用此代码向会员发送简报,现在的问题是,当我发送电子邮件时,它不会发送。我在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");
?>

1 个答案:

答案 0 :(得分:0)

您似乎从查询中获取了所有行:

$results= $executequery->getrows();
                               ^ plural

但是你从未实际遍历所有行,因此$results[$i]将包含结果集中的一个完整行:包含USERID,用户名和电子邮件的数组。

当您使用字符串连接数组时,数组将生成文本array

这假设$i是一个整数,但在你的代码中它根本没有定义。

您可能希望在某处循环结果集,如果使用foreach,则根本不需要$i变量:

foreach ($results as $result) {
    // Build your e-mail addresses string?
    ...
}