在 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() 期间接收视图文件名和评估的内容。然后,您可以使用此侦听器检查标签的内容,并在必要时发送该电子邮件。