Beispiel #1
0
 /**
  * メール設定がされているかどうか
  *
  * @return bool
  */
 public function isUserMailSend()
 {
     $from = SiteSettingUtil::read('Mail.from');
     // Fromが空ならメール未設定のため、メール送らない
     if (empty($from)) {
         return false;
     }
     // cakeコマンドに実行権限なければ、メール送らない
     if (!MailSend::isExecutableCake()) {
         return false;
     }
     return true;
 }
 /**
  * メールを送るかどうか - 共通処理
  *
  * @param Model $model モデル
  * @param string $typeKey メールの種類
  * @param string $settingPluginKey 設定を取得するプラグインキー
  * @return bool
  */
 public function isMailSendCommon(Model $model, $typeKey = MailSettingFixedPhrase::DEFAULT_TYPE, $settingPluginKey = null)
 {
     if ($settingPluginKey === null) {
         $settingPluginKey = Current::read('Plugin.key');
     }
     $from = SiteSettingUtil::read('Mail.from');
     // Fromが空ならメール未設定のため、メール送らない
     if (empty($from)) {
         CakeLog::debug('[' . __METHOD__ . '] ' . __FILE__ . ' (line ' . __LINE__ . ')');
         return false;
     }
     // cakeコマンドに実行権限なければ、メール送らない
     if (!MailSend::isExecutableCake()) {
         CakeLog::debug('[' . __METHOD__ . '] ' . __FILE__ . ' (line ' . __LINE__ . ')');
         return false;
     }
     /** @see MailSetting::getMailSettingPlugin() */
     $mailSettingPlugin = $model->MailSetting->getMailSettingPlugin(null, $typeKey, $settingPluginKey);
     $isMailSend = Hash::get($mailSettingPlugin, 'MailSetting.is_mail_send');
     $isMailSendApproval = Hash::get($mailSettingPlugin, 'MailSetting.is_mail_send_approval');
     // プラグイン設定でメール通知 and 承認メール通知をどちらも使わないなら、メール送らない
     if (!$isMailSend && !$isMailSendApproval) {
         CakeLog::debug('[' . __METHOD__ . '] ' . __FILE__ . ' (line ' . __LINE__ . ')');
         return false;
     }
     $status = Hash::get($model->data, $model->alias . '.status');
     // 一時保存はメール送らない
     if ($status == WorkflowComponent::STATUS_IN_DRAFT) {
         CakeLog::debug('[' . __METHOD__ . '] ' . __FILE__ . ' (line ' . __LINE__ . ')');
         return false;
     }
     $block = Current::read('Block');
     // ブロック非公開、期間外はメール送らない
     if (!$model->MailQueue->isSendBlockType($block, '')) {
         CakeLog::debug('[' . __METHOD__ . '] ' . __FILE__ . ' (line ' . __LINE__ . ')');
         return false;
     }
     return true;
 }