/** * 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; }
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();
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'); } }