SEND3010_EXE.php 6.67 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("/home/webusr/WWW/mail_ni_pon_v2/include/dbcon.inc");
include("/home/webusr/WWW/mail_ni_pon_v2/include/getDomain.inc");
include("/home/webusr/WWW/mail_ni_pon_v2/include/jcode.phps");

//***** 管理者アドレス,名前 *****//
$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();
		$timeSFMT = date("Y/m/d H:i:s");

		$strFrom = "From: ".$strSubmitAdd."\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 .= "\n";
		$Mail_Body .= "_/_/_/_/_/_/"."\n";
		$Mail_Body .= "このメールはメール配信システム「め〜るNiポン!」より配信されています"."\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("", $strSubject, $Mail_Body, $Headers, "-f".$strSubmitAdd);

		$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;
?>