php 不在电子邮件中显示电子邮件地址

php not show email addresses in email

对于我网站的电子邮件更新功能,我不希望所有收到电子邮件的用户都看到所有其他成员的电子邮件地址

如何禁用 this/turn 这个功能?

我的代码:

if($query -> execute()) {


    if($sendmsg == 1) {
    $emailquery = $db->prepare("SELECT email FROM tbl_users WHERE emailupdates = 1");
    $emailquery -> execute();

    $elist = "";
    while($mail = $emailquery->fetch(PDO::FETCH_OBJ)) {
        $elist .= $mail->email . ", ";
    }


    $emails = substr($elist, 0, -2);

    $link = "http://xxxxx.nl/kalenderdetail/" . $id;

    $to         =   $emails;
    $subject    =   "Nieuwe wedstrijd toegevoegd aan kalender xxxxx.nl";
    $message    .=  "Beste lid van xxxx.nl,\n\n";
    $message    .=  "Er is zojuist een nieuwe wedstrijd toegevoegd aan de website.\n";
    $message    .=  "Titel van de wedstrijd: " . $titel ."\n";
    $message    .=  "Locatie: " . $locatie . "\n";
    $message    .=  "Bekijk het hele kalenderitem: ". $link . "\n\n";
    $message    .=  "Met sportieve groeten,\n";
    $message    .=  "xxxxxx\n";
    $from       =   "info@xxxxx.nl";
    $headers    =   "From: $from";
    if(mail($to,$subject,$message,$headers)) {
        $msg = "Edit en mail succesvol";
        header("location: xxxxxxxx?msg=" . $msg);
    }

您可以将发送电子邮件的代码放在 while 循环中,这样您就可以在一个地址上发送多封电子邮件,而不是将一封电子邮件发送到多个地址,但这可能会导致垃圾邮件问题。

或者您可以使用 BCC(密件抄送)See here

一个与问题无关的旁注,我个人觉得你使用的截2个字符的方法有点乱。您可以通过这种方式获得相同的结果。

$elist = array();
while($mail = $emailquery->fetch(PDO::FETCH_OBJ)) {
    $elist[] = $mail->email;
}


$emails = implode(', ', $elist);

好处是,如果您更改分隔符 (,),您也不需要编辑 substr 方法,但正如我所说,这只是我个人对此的看法。