public function testSpamSetController() { $model = new Kwf_Model_Mail(array('tpl' => 'UserActivation')); $row = $model->createRow(); $row->addTo('*****@*****.**'); $row->subject = 'Buy cheap viagra'; $row->sent_mail_content_text = "cheap viagra cheap cialis buy now cheap viagra cheap cialis buy now\ncheap viagra cheap cialis buy now cheap viagra cheap cialis buy now"; $row->save(); $transport = $this->getMock('Zend_Mail_Transport_Abstract', array('_sendMail')); $transport->expects($this->never())->method('_sendMail'); $ret = Kwf_Controller_Action_Spam_SetController::sendSpammedMail($row->id, 'xx' . Kwf_Util_Check_Spam::getSpamKey($row), $transport); $this->assertFalse($ret); $transport = $this->getMock('Zend_Mail_Transport_Abstract', array('_sendMail')); $transport->expects($this->never())->method('_sendMail'); $ret = Kwf_Controller_Action_Spam_SetController::sendSpammedMail($row->id . '9999999999999999999', Kwf_Util_Check_Spam::getSpamKey($row), $transport); $this->assertFalse($ret); $transport = $this->getMock('Zend_Mail_Transport_Abstract', array('_sendMail')); $transport->expects($this->once())->method('_sendMail'); $ret = Kwf_Controller_Action_Spam_SetController::sendSpammedMail($row->id, Kwf_Util_Check_Spam::getSpamKey($row), $transport); $this->assertTrue($ret); $transport = $this->getMock('Zend_Mail_Transport_Abstract', array('_sendMail')); $transport->expects($this->never())->method('_sendMail'); $ret = Kwf_Controller_Action_Spam_SetController::sendSpammedMail($row->id, Kwf_Util_Check_Spam::getSpamKey($row), $transport); $this->assertFalse($ret); }
public static function checkIsSpam($text, $row = null) { if (!self::$_backend) { $c = Kwf_Registry::get('config')->spamChecker; if (!$c) { return false; } self::$_backend = new $c(); } return self::$_backend->checkIsSpam($text, $row); }
/** * Public only for testing!!! */ public static function sendSpammedMail($id, $key, $tranport = null) { $row = Kwf_Model_Abstract::getInstance('Kwf_Model_Mail')->getRow($id); if (!$row) { return false; } if (Kwf_Util_Check_Spam::getSpamKey($row) != $key) { return false; } if (!$row->mail_sent) { $row->is_spam = 0; $row->sendMail($tranport); // setzt mail_sent auf 1 und speichert return true; } return false; }
protected function _checkIsSpam() { if (!$this->_checkSpam) { return false; } if (!$this->id) { throw new Kwf_Exception("row wurde noch nie gespeichert, daher spam check nicht möglich da keine id vorhanden"); } $siblingRows = $this->_getSiblingRows(); $essentialsRow = $siblingRows['essentials']; $mailVarsRow = $siblingRows['vars']; $spamFields = unserialize($essentialsRow->spamFields); if (!$spamFields) { return 0; } if (in_array('*', $spamFields)) { $spamFields = array_keys($mailVarsRow->toArray()); } $text = array(); foreach ($spamFields as $v) { $text[] = $mailVarsRow->{$v}; } $text = implode("\n", $text); return Kwf_Util_Check_Spam::checkIsSpam($text, $this); }