SEND3010_EXE.php 6.79 KB
<?PHP 
//*****************************************************************************
//* 
//* プログラム名:め〜るNiポン!V2
//* プログラムID:SEND3010_EXE.php
//* 機能        :お知らせ配信(裏配信)
//* 
//*****************************************************************************
header("Content-type: text/html; charset=EUC-JP");

ini_set('max_execution_time', 3600);	//タイムアウト1時間

//***** パラメータ *****//
//$PHP_POST_DB_NAME  = "postV2_usr_araya";
//$PHP_POST_SYAIN_CD = "43";
//$MAIL_ID           = "132";

$PHP_POST_DB_NAME  = $argv[1];
$PHP_POST_SYAIN_CD = $argv[2];
$MAIL_ID           = $argv[3];

//***** BCC人数 *****//
$bccMax = 10;

//***** 送信間隔(秒) *****//
$sendWait = 1;

include("./include/dbcon.inc");
include("./include/getDomain.inc");
include("./include/jcode.phps");
include("./include/mtcnews.inc");

//***** 管理者アドレス,名前 *****//
$strSQL  = "SELECT ";
$strSQL .= " * ";
$strSQL .= "FROM ";
$strSQL .= " syain_tbl ";
$strSQL .= "WHERE ";
$strSQL .= " syain_cd = " . $PHP_POST_SYAIN_CD. " ";
$strSQL .= "ORDER BY";
$strSQL .= " syain_cd";
echo $strSQL."<hr>";
$objRecSet = pg_exec($strSQL);
if($objRecSet==false){
		echo("SQL実行に失敗しました(INSERT)");
		exit;
}
$objData = pg_fetch_object($objRecSet, 0);
$strSubmitAdd = $objData->pc_mail_addr;
if($strSubmitAdd==""){//pcメルアドが無かったら
		$objData = pg_fetch_object($objRecSet, 0);
		$strSubmitAdd = $objData->mail_addr;
		if($strSubmitAdd==""){//どちらのメルアドも無かったら
				$strSQL = "SELECT * FROM mst_dmain";
				$objRecSet = pg_exec($strSQL);
				if($objRecSet==false){
						echo("SQL実行に失敗しました(INSERT)");
						exit;
				}
				$objData = pg_fetch_object($objRecSet, 0);
				$strSubmitAdd = $objData->mail_addr;
		}
}
$strSubmitName=$strSubmitName=$objData->name_kj_sei . " " . $objData->name_kj_mei;

//********** メール情報取得 **********//
$strSQL  = "SELECT ";
$strSQL .= " * ";
$strSQL .= "FROM ";
$strSQL .= " mail_data ";
$strSQL .= "WHERE ";
$strSQL .= " mail_id = " . (int)$MAIL_ID;
echo $strSQL."<hr>";
$objRec = pg_exec($strSQL);
if($objRec==false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
}
$objData = pg_fetch_object($objRec, 0);
$Disp_Subject  = $objData->subject_name;
$Disp_Body     = $objData->contents;
$Send_type     = $objData->send_type;

//********** 配信先取得 **********//
//20人ずつ
$bccArray    = "";
$bccArrayNum = "";
$bccArrCt    = 0;
$bccCnt      = 0;

$strSQL  = "SELECT ";
$strSQL .= " syain_tbl.syain_cd    , ";
$strSQL .= " syain_tbl.angou_cd    , ";
$strSQL .= " syain_tbl.mail_addr   , ";
$strSQL .= " syain_tbl.pc_mail_addr, ";
$strSQL .= " syain_tbl.name_kj_sei , ";
$strSQL .= " syain_tbl.name_kj_mei   ";
$strSQL .= "FROM ";
$strSQL .= " mail_info, ";
$strSQL .= " syain_tbl  ";
$strSQL .= "WHERE ";
$strSQL .= " mail_info.syain_cd  = syain_tbl.syain_cd AND ";
$strSQL .= " mail_info.mail_id   = ".(int)$MAIL_ID."  AND ";
$strSQL .= " mail_info.check_flg = 98 ";
$strSQL .= "ORDER BY ";
$strSQL .= " syain_tbl.syain_id ASC ";
echo $strSQL."<hr>";
$objRec = pg_exec($strSQL);
if($objRec==false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
}
for ($intI = 0; $intI < pg_numrows($objRec); $intI++) {
		$objData  = pg_fetch_object($objRec, $intI);

		//*** 宛先情報取得 ***//
		switch ($Send_type) {
			case "0":
					//*** 携帯 ***//
					if($objData->mail_addr!=""){
							if ($bccCnt!=0){
									$bccArray[$bccArrCt] .= ",";
							}

							$bccArray[$bccArrCt] .= $objData->mail_addr;
							$bccCnt++;
					}
					if($bccCnt == $bccMax){
							$bccCnt = 0;
							$bccArrCt++;
					}

					//*** PC ***//
					if($objData->pc_mail_addr!=""){
							if ($bccCnt!=0){
									$bccArray[$bccArrCt] .= ",";
							}

							$bccArray[$bccArrCt] .= $objData->pc_mail_addr;
							$bccCnt++;
					}
					if($bccCnt == $bccMax){
							$bccCnt = 0;
							$bccArrCt++;
					}

					break;

			case "1":
					//*** 携帯 ***//
					if($objData->mail_addr!=""){
							if ($bccCnt!=0){
									$bccArray[$bccArrCt] .= ",";
							}

							$bccArray[$bccArrCt] .= $objData->mail_addr;
							$bccCnt++;
					}
					if($bccCnt == $bccMax){
							$bccCnt = 0;
							$bccArrCt++;
					}

					break;

			case "2":
					//*** PC ***//
					if($objData->pc_mail_addr!=""){
							if ($bccCnt!=0){
									$bccArray[$bccArrCt] .= ",";
							}

							$bccArray[$bccArrCt] .= $objData->pc_mail_addr;
							$bccCnt++;
					}
					if($bccCnt == $bccMax){
							$bccCnt = 0;
							$bccArrCt++;
					}

					break;
		}

		$bccArrayNum[$bccArrCt] = $intI + 1;
		
		$bccCnt++;
		if($bccCnt == $bccMax){
			$bccCnt = 0;
			$bccArrCt++;
		}

}

$all_start = date("Y/m/d H:i:s");
for($i=0;$i<count($bccArray);$i++){
		echo $i." / ".$bccArray[$i]."<hr>";
		
		//$timeS = date();
		$bcc_list = explode(",", $bccArray[$i]);
		foreach ($bcc_list as $bcc) {
			$timeSFMT = date("Y/m/d H:i:s");

			$strFrom = "From: ".$NOREPLY_ADDR."\n";
			$strTo = "To: ".$bcc."\n";
			$strSubject = $Disp_Subject;
			$strSubject = "=?iso-2022-jp?B?" . base64_encode(jcodeconvert($strSubject, 0, 3)) . "?=";
			$GMT = date("Z");
			$GMT_ABS	= abs($GMT);
			$GMT_HOUR = floor($GMT_ABS / 3600);
			$GMT_MIN = floor(($GMT_ABS - $GMT_HOUR * 3600) / 60);
			if ($GMT >= 0) $GMT_FLG = "+"; else $GMT_FLG = "-";
			$GMT_RFC = date("D, d M Y H:i:s ").sprintf($GMT_FLG."%02d%02d", $GMT_HOUR, $GMT_MIN);
			$Headers  = "";
			$Headers  = "Date: ".$GMT_RFC."\n";
			$Headers .= $strFrom;
			// $Headers .= "Bcc:".$bccArray[$i].";\r\n";
			$Headers .= "Subject: $strSubject\n";
			$Headers .= "MIME-Version: 1.0\n";
			$Headers .= "X-Mailer: PHP/".phpversion()."\n";
			$Headers .= "Content-type: text/plain; charset=ISO-2022-JP\n";
			$Headers .= "Content-Transfer-Encoding: 7bit";
		
			//エンコード設定
			$Mail_Body  = $Disp_Body;
			$Mail_Body .= "\n";
			
			//$Mail_Body = mb_convert_encoding($Mail_Body, "JIS", "auto");
			//$Mail_Body = base64_encode(jcodeconvert($Mail_Body, 0, 3)) ;
			//$Mail_Body = mb_convert_encoding($Mail_Body, "JIS", "auto");
			$Mail_Body = mb_convert_encoding($Mail_Body, "JIS", "EUC-JP");
			//$intBool = mail($bcc, $strSubject, $Mail_Body.jcodeconvert(group_admin_addr($strSubmitAdd), 1, 3), $Headers, "-f".$NOREPLY_ADDR);
			$intBool2 = mail($bcc,$strSubject,$Mail_Body.jcodeconvert(group_admin_addr($strSubmitAdd), 1, 3), "","-f ".$NOREPLY_ADDR);//真真

		}


		$timeEFMT = date("Y/m/d H:i:s");
		$strSQL  = "INSERT INTO send_time_log (";
		$strSQL .= " mail_id, ";
		$strSQL .= " mail_cnt, ";
		$strSQL .= " start_time, ";
		$strSQL .= " end_time, ";
		$strSQL .= " send_sec, ";
		$strSQL .= " send_sec_all) ";
		$strSQL .= "VALUES( ";
		$strSQL .= " ".(int)$MAIL_ID.", ";
		$strSQL .= " ".$bccArrayNum[$i].", ";
		$strSQL .= " '".$timeSFMT."', ";
		$strSQL .= " '".$timeEFMT."', ";
		$strSQL .= " '', ";
		$strSQL .= " '')";
		$objRec = pg_exec($strSQL);
		if($objRec==false){
				echo("SQL実行に失敗しました(INSERT)");
				exit;
		}
	
		sleep($sendWait);

}
exit;
?>