在 CAKEPHP 中检查所有视图的内容,如果不正常则发送邮件
In CAKEPHP Check content of all view and send mail if not ok
使用 cakephp 2.9 我有这个需求:
我应该检查出现的页面上是否有特定标签。
如果它存在,则不能做任何其他事情必须给我发电子邮件。
此时我想创建一个helper并调用default.ctp
中的一个方法
类似:
$s = this-> fetch (‘content’);
$result_check = $this->myHelper->debug_content ($s);
echo $s;
在myHelper函数中:
public function debug_content( $s) {
$pos = strpos ( $s, "<div class = \"box-body\">");
if ( $pos === false) { echo “Error tag is not present!”;
return false;
}
在AppController中:
public $helpers = array (…, ‘myHelper’);
到这里好了……但是现在呢?
如何调出组件Email(由我个性化)来发送邮件?
我在哪里调用它?
你会怎么做?
谢谢,
最大
不知道我是否答对了你的问题。但是您可以在检查标签的函数中实现所需的电子邮件发送功能。
App::uses('CakeEmail', 'Network/Email');
public function debug_content( $s) {
$pos = strpos ( $s, "<div class = \"box-body\">");
if ( $pos === false) { echo “Error tag is not present!”;
$Email = new CakeEmail();
$Email->emailFormat('html');
$Email->template('default');
$Email->from('sending@adress.com');
$Email->to('receiving@adress.com');
$Email->subject('YOUR SUBJECT');
$Email->send();
return false;
}
Implement a listener for the View.afterRenderFile
event and see if this solves the issue. Have a look at the source code of the View
class, you can see 此回调在调用 View::render()
期间接收视图文件名和评估的内容。然后,您可以使用此侦听器检查标签的内容,并在必要时发送该电子邮件。
使用 cakephp 2.9 我有这个需求:
我应该检查出现的页面上是否有特定标签。
如果它存在,则不能做任何其他事情必须给我发电子邮件。
此时我想创建一个helper并调用default.ctp
中的一个方法类似:
$s = this-> fetch (‘content’);
$result_check = $this->myHelper->debug_content ($s);
echo $s;
在myHelper函数中:
public function debug_content( $s) {
$pos = strpos ( $s, "<div class = \"box-body\">");
if ( $pos === false) { echo “Error tag is not present!”;
return false;
}
在AppController中:
public $helpers = array (…, ‘myHelper’);
到这里好了……但是现在呢?
如何调出组件Email(由我个性化)来发送邮件?
我在哪里调用它?
你会怎么做?
谢谢,
最大
不知道我是否答对了你的问题。但是您可以在检查标签的函数中实现所需的电子邮件发送功能。
App::uses('CakeEmail', 'Network/Email');
public function debug_content( $s) {
$pos = strpos ( $s, "<div class = \"box-body\">");
if ( $pos === false) { echo “Error tag is not present!”;
$Email = new CakeEmail();
$Email->emailFormat('html');
$Email->template('default');
$Email->from('sending@adress.com');
$Email->to('receiving@adress.com');
$Email->subject('YOUR SUBJECT');
$Email->send();
return false;
}
Implement a listener for the View.afterRenderFile
event and see if this solves the issue. Have a look at the source code of the View
class, you can see 此回调在调用 View::render()
期间接收视图文件名和评估的内容。然后,您可以使用此侦听器检查标签的内容,并在必要时发送该电子邮件。