我正在尝试在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);
答案 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";
}