gpt4 book ai didi

php - 内爆数组与电子邮件一起使用时出错

转载 作者:行者123 更新时间:2023-11-28 23:19:32 24 4
gpt4 key购买 nike

在我的数据库中,只有电子邮件列(列是电子邮件),并且在每一列中,都有关于该电子邮件的数据(人名等),但这并不重要。我尝试将所有列作为数组然后使用 implode()将数组转换为字符串,这样我就可以使用该字符串向所有列发送电子邮件。

这是我尝试过的:

$address = array();
$connection = mysql_connect($hostname, $username, $password);
mysql_select_db($dbname, $connection);
$result = mysql_query("SHOW COLUMNS FROM `Emails`");
while($row = mysql_fetch_array($result))
{
$address = implode(',', $row);
}

如果我尝试这个:echo $row['Field']."<br>";它显示存储在数组中的所有列(电子邮件)但是当我尝试 $address = implode(',', $result);它不工作。这是字符串 $address 的位置使用:mail($address,$subject,$message,$headers);

最佳答案

在 while 循环中构建电子邮件数组,然后将它们分解成逗号分隔值或任何您需要的字符串。

<?php
$result = mysql_query("SHOW COLUMNS FROM `Actions`");
while($row=mysql_fetch_assoc($result)){
$emails[]=$row["Field"];
}
//$csv_emails=implode(", ",$emails);
//echo $csv_emails;
$headers.="Bcc: ".implode(", ",$emails)."\r\n"; // blind carbon copy all emails
mail('',$subject,$message,$headers); // no $to, all recipients in $headers
?>

--开始编辑

我已经调整了我的代码片段以展示如何只使用 mail() 一次——而不是进行 n 次 mail() 函数调用。我没有测试过这个片段,所以我建议在你有权访问的两个电子邮件地址上试用它。如果任何读者发现此代码段有误,请告诉我,我会进行更新。

无论您是否选择批量发送邮件,都不要使用两个循环——任何一种解决方案都可以在一个循环中完成。 (我的意思是,如果你想多次调用 mail(),并且不使用 $emails[] 来处理代码后面的任何其他内容,你可以将 mail() 放在 while 循环中,而不必费心创建$email[] 数组。)

旁白:至于每个 mail() 函数的最大收件人数量,关于这个主题有很多问题。这里只有一个:Is there a limit when using php mail function?

结束编辑--

如果您以后需要过滤电子邮件列表:

省略一个电子邮件地址:

SHOW COLUMNS FROM `Actions` WHERE `Field`!='bad@email.com'

或省略多个电子邮件地址:

SHOW COLUMNS FROM `Actions` WHERE `Field` NOT IN('bad1@email.com','bad2@email.com')

关于php - 内爆数组与电子邮件一起使用时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42430768/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com