使用Yii框架从数据库发送电子邮件的脚本

时间:2014-01-16 06:36:12

标签: php sql function yii

我正在尝试在Controller中创建一个函数,以便在每次成功运行“actionCreate()”函数后,我想向所有成员发送电子邮件。到目前为止,这是我的功能:

public function emailAll()
{
    $row = Yii::app()->db->createCommand(array(
        'select' => array('email'),
        'from' => 'tb_user',
    ))->queryRow();


    while ($row != null) {

        $to = $row['emailAdd'];
        $subject = 'NEW UPDATE FROM ADMIN';
        $message = 'HELLO TEST';
        $headers = 'From: webadmin@sample.com' . "\r\n";


        mail($to, $subject, $message, $headers);
    }
}

每次运行create时代码都会挂起。在使用select语句方面,任何人都可以帮助我使用Yii的语法吗?我只是希望能够选择所有的电子邮件地址。

我将功能更改为此项以检查是否有一封电子邮件甚至是发送:

 $to = 'myemail@live.com';
        $subject = 'NEW UPDATE FROM ADMIN';
        $message = 'HELLO TEST';
        $headers = 'From: to@someone.com' . "\r\n";


        mail($to, $subject, $message, $headers);

1 个答案:

答案 0 :(得分:0)

为避免挂起,请移除while循环。这意味着更少。

只需使用

$to = $row['emailAdd']; 
$subject = 'NEW UPDATE FROM ADMIN';
$message = 'HELLO TEST';
$headers = 'From: webadmin@sample.com' . "\r\n";
if(mail($to, $subject, $message, $headers))
{
 echo "success";
}
else
{
    echo "failed";
}