【发布时间】:2023-03-14 14:36:01
【问题描述】:
我正在尝试创建一个电子邮件列表。我已经尝试了十几种不同的方法。我的最后一次尝试对我来说最有意义,但它似乎只发送给名单上的最后一个人,而没有其他人。我是在做错什么,还是应该换一种方式来做这件事?当我查看该页面时,它会发布“已发送邮件”。对于列表中的每个用户,尽管电子邮件实际上只发送给列表中的最后一个人。
<?php include '../../manage.php'; include '../../sql.php';
$sql = "SELECT email FROM users WHERE email_list=1";
$sql = mysqli_query($con,"$sql");
while($row = mysqli_fetch_assoc($sql)){
$to = $row[email];
$subject = "Quote Requested";
$message = "Testing.";
$from = "email@mydomain.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
}
?>
【问题讨论】:
-
var_dump($to);在每个while迭代中 -
@u_mulder 刚刚打印出以下内容: string(27) "email1@domain.com" Mail Sent.string(24) "email2@domain.com" Mail Sent。但它仍然只发送给最后一个人。我将
var_dump($to);放在$to = $row[email];的正下方,放置它的位置是否正确? -
我刚刚测试了发布的整个代码,只使用手册示例
$con = mysqli_connect("myhost","myuser","mypassw","mybd") or die("Error " . mysqli_error($con));创建了我自己的连接字符串,即$con。我创建了一个包含 5 个条目的数据库,其中 3 个是email_list1。我认为绝对没有问题,并收到了三封电子邮件。我唯一的想法是可能将$con变量全球化。 -
@TheHumbleRat 我调查了它,在列表中的所有用户中,唯一收到电子邮件的是一个不属于我们组织的电子邮件地址。 Outlook 会自动将电子邮件过滤为垃圾邮件,即使它来自组织地址。必须将其设置为根本不过滤垃圾邮件才能正常工作。感谢您帮助测试它!
-
@StauntonAllen 很高兴能为您提供帮助。看起来我们都学到了一些新东西。