/**
  * afterSave is called after a model is saved.
  *
  * @param Model $model モデル
  * @param bool $created True if this save created a new record
  * @param array $options Options passed from Model::save().
  * @return bool
  * @see Model::save()
  * @link http://book.cakephp.org/2.0/ja/models/behaviors.html#ModelBehavior::afterSave
  */
 public function afterSave(Model $model, $created, $options = array())
 {
     $contentKey = $this->__getContentKey($model);
     $workflowType = Hash::get($this->settings, $model->alias . '.' . self::MAIL_QUEUE_SETTING_WORKFLOW_TYPE);
     $workflowTypeCheck = array(self::MAIL_QUEUE_WORKFLOW_TYPE_COMMENT, self::MAIL_QUEUE_WORKFLOW_TYPE_ANSWER);
     if (!in_array($workflowType, $workflowTypeCheck, true)) {
         // 未来日系の送信日時更新を考慮して delete->insert
         // コンテンツコメントは、同じ動画に複数コメントしてもコンテンツキー同じで消されると困る&未来日系ありえないため、除外
         // 回答も未来日系ありえないため、除外
         $model->Behaviors->load('Mails.MailQueueDelete', $this->settings[$model->alias]);
         /** @see MailQueueDeleteBehavior::deleteQueue() */
         $model->deleteQueue($contentKey);
         // MailQueueDeleteBehaviorはunloadしない。モデル側のactAsで既に、MailQueueDeleteBehavior を読み込んでいる場合、下記エラーが出るため。
         // Notice (8): Undefined index: MailQueueDelete [CORE/Cake/Utility/ObjectCollection.php, line 128]
         // Warning (2): call_user_func_array() expects parameter 1 to be a valid callback, first array member is not a valid class name or object [CORE/Cake/Utility/ObjectCollection.php, line 128]
         $model->Behaviors->disable('Mails.MailQueueDelete');
     }
     $model->Behaviors->load('Mails.IsMailSend', $this->settings[$model->alias]);
     $typeKey = $this->settings[$model->alias]['typeKey'];
     // --- リマインダー
     /** @see IsMailSendBehavior::isMailSendReminder() */
     if ($model->isMailSendReminder()) {
         $sendTimeReminders = $this->settings[$model->alias]['reminder']['sendTimes'];
         $this->saveQueue($model, $sendTimeReminders, $typeKey);
     }
     $sendTimePublish = $this->__getSendTimePublish($model);
     $settingPluginKey = $this->__getSettingPluginKey($model);
     // --- 通常メール
     /** @see IsMailSendBehavior::isMailSend() */
     if ($model->isMailSend(MailSettingFixedPhrase::DEFAULT_TYPE, $contentKey, $settingPluginKey)) {
         $this->saveQueue($model, array($sendTimePublish), $typeKey);
         // キューからメール送信
         MailSend::send();
     }
     $model->Behaviors->unload('Mails.IsMailSend');
     return true;
 }
Beispiel #2
0
    public static function getDomain()
    {
        return self::$domain;
    }
    public static function getMailAddress()
    {
        return self::$mail;
    }
    public static function sendMail($name, $address, $message)
    {
        $mail_to = self::getMailAddress();
        $mail_subject = "Сообщение от пользователя " . $name;
        $mail_body = $message;
        $domain = self::getDomain();
        $mail_headers = "From: " . $name . "<" . $address . ">\r\nX-Mailer: " . $domain . " Mailer\r\nContent-Type: text/html; charset=utf-8";
        return mail($mail_to, $mail_subject, $mail_body, $mail_headers);
    }
    public static function send()
    {
        $name = htmlspecialchars($_POST["name"], ENT_COMPAT, "UTF-8");
        $address = htmlspecialchars($_POST["address"], ENT_COMPAT, "UTF-8");
        $message = htmlspecialchars($_POST["message"], ENT_COMPAT, "UTF-8");
        $real = htmlspecialchars($_POST["real"], ENT_COMPAT, "UTF-8");
        if ($real == 1 && $name != '' && $address != '' && $message != '') {
            self::sendMail($name, $address, $message);
            header('location:/index.php');
        }
    }
}
MailSend::send();
Beispiel #3
0
    public function addText($text)
    {
        $this->text = $text;
    }
    // Отправка
    public function send()
    {
        if (!$this->validate()) {
            return false;
        }
        return mail($this->email, $this->subject, $this->text);
    }
    // Валидация входящих данных
    private function validate()
    {
        // Валидация адреса
        return filter_var($this->email, FILTER_VALIDATE_EMAIL);
    }
}
$mail = new MailSend();
$mail->addEmail('*****@*****.**');
// Добавляем адресс
$mail->addSubject('Title message');
// Добавляем тему
$mail->addText('Text message');
// Добавляем текст
if ($mail->send()) {
    echo 'Отправлено успешно!';
} else {
    echo 'Не удалось отправить!';
}
     if (!$comment) {
         message('要回复的评论不存在', $options['url']);
     }
     $content = '@' . addslashes($comment['author']) . ': ' . $content;
     if ($options['url']) {
         //发送邮件通知
         include_once SABLOG_ROOT . 'include/class/mail.class.php';
         $fromname = $fromname ? $fromname : substr($sax_email, 0, strpos($sax_email, "@"));
         $fromdomain = strstr($sax_email, '@');
         $m = new MailSend();
         $m->setToaddr($comment['email']);
         $m->setSubject('有人在' . $options['name'] . '回复了您的评论');
         $m->setContent('有人在' . $options['name'] . '回复了您的评论, 查看内容链接: ' . $article['url']);
         $m->setFromaddr($fromname . ' <' . $sax_email . '>');
         $m->setDomain($fromdomain);
         $m->send();
     }
 }
 if ($article['closecomment']) {
     message('本文不允许发表评论', $article['url']);
 }
 if ($options['seccode'] && $sax_group != 1 && $sax_group != 2) {
     $clientcode = $_POST['clientcode'];
     include_once SABLOG_ROOT . 'include/class/seccode.class.php';
     $code = new seccode();
     $code->seccodeconvert($_SESSION['seccode']);
     if (!$clientcode || strtolower($clientcode) != strtolower($_SESSION['seccode'])) {
         $_SESSION['seccode'] = random(6, 1);
         message('验证码错误,请返回重新输入.', $options['url'] . 'cp.php?action=login');
     }
 }