Esempio n. 1
0
 /**
  *
  * 非許可ドメインリストと正規表現にて照会
  *
  * @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;
 }
Esempio n. 2
0
    //$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;
    }
Esempio n. 3
0
/**
 * 管理側 情報データコピー登録処理ページ。
 *
 * @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;
}
// 予約メルマガ内容の更新
//前ページから渡って来た値
Esempio n. 4
0
    $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"];
             }
Esempio n. 6
0
//ファイルの中身を配列に格納
$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;