我正在尝试向在我网站上注册的用户发送电子邮件(如简报) 问题是:我有例如5个用户,当我向他们发送电子邮件时,只有第一个用户收到电子邮件而另外4个人什么也得不到。
<?php
public function sendEmail($name,$email,$text) {
$users = $this->_mysqli->get("user",array("TRUE"));
$headers = 'From: '.$email."\n";
$headers .= 'Date: '.gmdate('D, d M Y H:i:s', time())."\n";
foreach($users as $user) {
$sended = mail($user["email"],'Contact from example.com',$name.' with email address: '.$email.' has contacted you: '.$text,$headers);
if($sended) {
return true;
}
}
}
?>
感谢您的帮助 我正在使用OOP
答案 0 :(得分:1)
问题在于:
foreach($users as $user) {
$sended = mail(...);
if($sended) {
return true;
}
}
你有一个循环,但是你在成功的第一个循环中离开它。
我认为你需要这个:
<?php
public function sendEmail($name,$email,$text) {
$users = $this->_mysqli->get("user",array("TRUE"));
$headers = 'From: '.$email."\n";
$headers .= 'Date: '.gmdate('D, d M Y H:i:s', time())."\n";
foreach($users as $user) {
$sended = mail($user["email"],'Contact from example.com',$name.' with email address: '.$email.' has contacted you: '.$text,$headers);
if(!$sended) {
return false;
}
}
return true;
}
?>