如何使用cakephp为所有用户发送电子邮件 [英] How to send email for all users with cakephp

查看:75
本文介绍了如何使用cakephp为所有用户发送电子邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不明白如何为所有用户发送一封电子邮件,我是在我的控制器中执行的:

i don't understand how send one email for all users, i do it this in my controller :

// Init
$data = $this->request->data['Email'];
$d = array(
    'subject' => $data['subject'],
    'message' => $data['message']
);

// QUERY
$all = $this->Spoutnik->find('all', array(
    'conditions' => array(
        'Spoutnik.role >=' => '1'
    ),
    'fields' => array('Spoutnik.email')
));
$this->set(compact('all'));

// list
$bcc = '';
foreach ($all as $user) {
    $bcc .= $user['Spoutnik']['email'].',';
}

// MAIL
App::uses('CakeEmail', 'Network/Email');
$CakeEmail = new CakeEmail('default');

$website_short_name = Configure::read('website.short_name');
$CakeEmail->bcc("$bcc");
$CakeEmail->subject(''.$website_short_name.' :: '.$d['subject'].'');

$CakeEmail->viewVars(array(
    'message' => (''.$d['message'].'')
));

$CakeEmail->emailFormat('html');
$CakeEmail->template('message_direct');

// final
$CakeEmail->send();

但是我有错误没有有效的邮件,并且在用户邮件列表之后

But i have error "no valid mail" , and after the liste of user's mail

我的代码有什么问题?

推荐答案

我只会使用 addBcc 函数并修改循环:

I will just use the addBcc function of CakeEmail and modify the loop:

App::uses('CakeEmail', 'Network/Email');
$CakeEmail = new CakeEmail('default');

// list
foreach ($all as $user) {
    $CakeEmail->addBcc($user['Spoutnik']['email']);
}

$website_short_name = Configure::read('website.short_name');
$CakeEmail->subject(''.$website_short_name.' :: '.$d['subject'].'');

$CakeEmail->viewVars(array(
    'message' => (''.$d['message'].'')
));

这篇关于如何使用cakephp为所有用户发送电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆