如何发送2封电子邮件

时间:2014-02-02 16:59:28

标签: php oop email solution

我正在尝试向在我网站上注册的用户发送电子邮件(如简报) 问题是:我有例如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

1 个答案:

答案 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;
 }
?>