/** * * 非許可ドメインリストと正規表現にて照会 * * @return array データ配列 */ public function searchNonAllowDomain($value) { if (!ComValidation::isMailAddress($value)) { return FALSE; } $dangerFlag = FALSE; $nonAllowDomainList = $this->getNonAllowDomainList(); //非許可リストと照会します if ($nonAllowDomainList) { foreach ($nonAllowDomainList as $nonAllowDomainData) { if (preg_match('/' . preg_quote($nonAllowDomainData['domain']) . '$/', $value) == TRUE) { $dangerFlag = TRUE; break; } } } //非許可に該当するなら、許可リストと照会します if ($dangerFlag == TRUE) { $allowDomainList = $this->getAllowDomainList(); if ($allowDomainList) { foreach ($allowDomainList as $allowDomainData) { if (preg_match('/' . preg_quote($allowDomainData['domain']) . '$/', $value) == TRUE) { $dangerFlag = FALSE; break; } } } } return $dangerFlag; }
//$AutoMailOBJ->mailTo($mailElements, "", $mailElementsData["image_data"], $mailElementsData["image_type"]); $AutoMailOBJ->smtpMailTo($mailElements, "", $mailElementsData["image_data"], $mailElementsData["image_type"]); exit; } // ---<初期チェック> // 登録アドレスドメインのチェック if ($mailAddress) { // @以降の文字列を取得 $mailHost = substr(strstr($mailAddress, "@"), 1); if (!$UserOBJ->chkRegistUserAddressDomain($mailHost)) { // NGドメインなのでさようなら exit; } } // 以下の情報が無ければ抜ける if (!$mailAddress and !ComValidation::isMailAddress($mailAddress)) { exit; } // 識別キーの取得 $matches = array(); if (preg_match("/^regist-([0-9a-f]+)@.*/", $headers["to"], $matches)) { $remailKey = $matches[1]; } else { $direct = true; } // リメールキーがあれば仮登録テーブルを調べる if ($remailKey) { $preRegistData = $PreRegistOBJ->getPreRegistDataFromRemailKey($remailKey); if (!$preRegistData) { exit; }
/** * 管理側 情報データコピー登録処理ページ。 * * @copyright 2012 Fraise, Inc. * @author norio takei */ require_once D_BASE_DIR . "/common/admin_common.php"; $param = $requestOBJ->getParameterExcept($exceptArray); $tags = array("mail_maga_reserve_id"); $URLparam = $requestOBJ->makeGetTag($tags); $AdmMailMagazineOBJ = AdmMailMagazine::getInstance(); // セッションオブジェクトのインスタンス $execMsgSessOBJ = new ComSessionNamespace("exec_msg"); $returnSessOBJ = new ComSessionNamespace("return"); $magaData = $AdmMailMagazineOBJ->getMailReserveData($param["mail_maga_reserve_id"]); if (!ComValidation::isMailAddress($param["from_address"])) { $errMsg[] = "送信アドレスを入力してください"; } $timerDatetime = $param["reserve_datetime_Date"] . " " . $param["reserve_datetime_Time"] . ":00"; if (!ComValidation::isDatetime($timerDatetime)) { $errMsg[] = "有効な日時を入力して下さい"; } // 戻り値の格納 $returnSessOBJ->return = $param; if ($errMsg) { $execMsgSessOBJ->message = $errMsg; header("Location: ./?action_mailLog_ReserveMailData=1&" . $URLparam); exit; } // 予約メルマガ内容の更新 //前ページから渡って来た値
$errMsg[] = "生年月日を正しく入力してください"; } // PCメール強行 if (!ComValidation::isNumeric($param["is_pc_reverse"])) { $errMsg[] = "PCメール強行フラグを選択してください"; } // MBメール強行 if (!ComValidation::isNumeric($param["is_mb_reverse"])) { $errMsg[] = "MBメール強行フラグを選択してください"; } // 危険人物フラグ if (!ComValidation::isNumeric($param["danger_status"])) { $errMsg[] = "危険人物フラグを選択してください"; } // PCメールアドレス if (ComValidation::isValue($param["pc_address"]) and !ComValidation::isMailAddress($param["pc_address"])) { $errMsg[] = "PCメールアドレスが正しくありません"; //} else if ($AdminUserOBJ->chkUserDataFromPcMailAddress($param["pc_address"], $param["user_id"])) { // $errMsg[] = "PCメールアドレスが重複しています"; } // PCアドレスステ-タス if (!ComValidation::isNumeric($param["pc_address_status"])) { $errMsg[] = "PCアドレスステ-タスを選択してください"; } // PC送信ステ-タス if (!ComValidation::isNumeric($param["pc_send_status"])) { $errMsg[] = "PC送信ステ-タスを選択してください"; } // PCメール受信設定 if (!ComValidation::isNumeric($param["pc_is_mailmagazine"])) { $errMsg[] = "PCメール受信設定を選択してください";
if (!$sendData["pc_to_address"] and !$sendData["mb_to_address"]) { $execMsgSessOBJ->exec_msg[] = "注文ID:" . $val["id"] . "に送信できませんでした。"; $sendCnt["errCnt"]++; continue; } $sendData["return_path"] = AdmSupportMail::SUPPORTMAIL_RETURN_PATH . $_config["define"]["MAIL_DOMAIN"]; $second = 60 * (int) AdmSupportMail::$_intervalSecond[$param["interval_second"]]; // インターバル指定 // サポートメールログの登録 $insertData = null; // PC送信 if (ComValidation::isMailAddress($sendData["pc_to_address"]) and $userData["pc_address_status"] != $_config["define"]["ADDRESS_STATUS_DO"]) { $execMsgSessOBJ->exec_msg[] = "注文ID:" . $val["id"] . "のPCアドレスステータスが送信可能ではないので送信できませんでした。"; $sendCnt["notSendPcCnt"]++; } else { if (ComValidation::isMailAddress($sendData["pc_to_address"])) { $pcSendMailData = ""; $sendData["to_address"] = $sendData["pc_to_address"]; $sendData["subject"] = $pcSubject; $sendData["text_body"] = $pcTextBody; $sendData = $AdmSupportMailOBJ->convertMailElements($sendData, $orderingData["user_id"], $setArray); $pcSendMailData = $AdmSupportMailOBJ->smtpMailTo($sendData, $second); try { if (!$ComSendMagicDeliveryOBJ->sendMagicDelivery($pcSendMailData)) { $execMsgSessOBJ->exec_msg[] = "注文ID:" . $val["id"] . "のPCアドレスに送信できませんでした。"; $sendCnt["notSendPcCnt"]++; } else { $sendCnt["sendPcCnt"]++; $insertData["pc_subject"] = $sendData["subject"]; $insertData["pc_text_body"] = $sendData["text_body"]; }
//ファイルの中身を配列に格納 $targetMailAddressArray = file($_FILES['regCsvFile']['tmp_name']); //空だったら中止 if (!ComValidation::isValue($targetMailAddressArray)) { $errMsg[] = "ファイルの中身が認識出来ません。"; header("location: ./?action_User_RegistCsv=1"); exit; } $targetCountNum = count($targetMailAddressArray); $i = 0; //順番にまわす foreach ($targetMailAddressArray as $key => $address) { //改行除去 $address = trim($address); //アドレス無し、もしくはアドレスの体を成していない場合はcontinue if (!$address or !ComValidation::isMailAddress($address)) { continue; } //アドレスから重複チェック $duplicateUserData = FALSE; if (!($duplicateUserData = $UserOBJ->getUserDataFromMailAddressDuplication($address))) { $duplicateUserData = $UserOBJ->chkUserDataFromLoginIdDuplication($address); } //重複がないなら if ($duplicateUserData == FALSE) { $UserOBJ->beginTransaction(); //現在時刻のみだと重複が発生しやすいので値を足してユニークになり易い様に仕向けます $currentDateTime = date("Y-m-d H:i:s"); $accessKey = $UserOBJ->getNewAccessKey($currentDateTime . $key); $remailKey = $UserOBJ->getNewRemailKey($currentDateTime . $key); $password = $UserOBJ->createPasswordKey(ComUtility::getRamdomNumber(4));
// 別途%変換用にセット $setArray = $AdmOrderingOBJ->makeOrderConvertArray($orderingData); // pc送信 $isPcSend = FALSE; if ($pcTextBody or $pcHtmlBody) { //PCアドレスステ-タス,PCメアド送信ステータス,PCメアド配信ステータスの有効性をチェック if ($userData["pc_send_status"] == $_config["define"]["ADDRESS_SEND_STATUS_FAIL"]) { $sendCnt["notSendPcCnt"]++; } else { if ($userData["pc_is_mailmagazine"] == $_config["define"]["ADDRESS_SEND_STATUS_FAIL"]) { $sendCnt["notSendPcCnt"]++; } else { if (ComValidation::isMailAddress($userData["pc_address"]) and $userData["pc_address_status"] != $_config["define"]["ADDRESS_STATUS_DO"]) { $sendCnt["notSendPcCnt"]++; } else { if (ComValidation::isMailAddress($userData["pc_address"])) { //配信アドレス作成処理。pc_mailmagazine_from_domain_idカラムのデータを元に、配信ドメインを決定。 if ($changeFromAddressFlag) { $listValue["from_address"] = ""; $sendMailDomainArray = $_config["define"]["SEND_MAIL_DOMAIN"]; //$sendMailDomainArray配列から万が一、値を引っ張ってこれなかったらを考え、一応のif文 if ($sendMailDomainArray[$userData["pc_mailmagazine_from_domain_id"]]) { $listValue["from_address"] = $fromAddressAry[0] . "@" . $sendMailDomainArray[$userData["pc_mailmagazine_from_domain_id"]]; } else { $listValue["from_address"] = $fromAddressAry[0] . "@" . $_config["define"]["MAIL_DOMAIN"]; } } $mailData = null; $mailData = array("to_address" => $userData["pc_address"], "return_path" => $return, "from_address" => $listValue["from_address"], "from_name" => $fromName, "subject" => $pcSubject, "text_body" => $pcTextBody, "html_body" => $pcHtmlBody); $mailElements = $AdmSupportMailOBJ->convertMailElements($mailData, $userData["user_id"], $setArray); $pcSendMailData = "";
$binRegistSiteId = pow(2, $registSiteData["cd"]); $tmp = file(D_BASE_DIR . AdmRegistSite::REGIST_CSV_FILE_PATH . $param["file_name"]); if (!$tmp) { $messageSessOBJ->message[] = "csvデータがありません"; $param["return_flag"] = true; $returnSessOBJ->return = $param; header("Location: ./?action_registSite_RegistSiteData=1&" . $URLparam); exit; } // トランザクション開始 $AdmRegistSiteOBJ->beginTransaction(); $i = 0; while ($i < count($tmp)) { $val = explode("\n", $tmp[$i]); $userData = $UserOBJ->getLastUserDataFromMailAddress($val[0]); if (ComValidation::isMailAddress($val[0])) { if ($registSiteLogData = $AdmRegistSiteOBJ->getRegistSiteLogDataFromMailAddress($val[0])) { // 登録済みでなければ更新 if ((bindec($registSiteLogData["regist_site_data_id"]) & $binRegistSiteId) == 0) { $updateData = ""; // データ10進数にして加算し、2進数の形で格納する $updateData["regist_site_data_id"] = decbin(bindec($registSiteLogData["regist_site_data_id"]) + $binRegistSiteId); $updateData["update_datetime"] = date("YmdHis"); $updateData["user_id"] = $userData["user_id"]; $whereArray = ""; $whereArray[] = "id = " . $registSiteLogData["id"]; if (!$AdmRegistSiteOBJ->updateRegistSiteLogData($updateData, $whereArray)) { // ロールバック $AdmRegistSiteOBJ->rollbackTransaction(); $messageSessOBJ->message = $AdmRegistSiteOBJ->getErrorMsg(); $param["return_flag"] = true;