MST1142.php 10.5 KB
<?PHP 
//*****************************************************************************
//* 
//* プログラム名:め〜るNiポン!V2
//* プログラムID:MST1142.php
//* 機能				:メール配信(テスト配信)
//* 
//*****************************************************************************
header("Content-type: text/html; charset=EUC-JP");

//***************************
//* インクルードファイル
//***************************
include("./include/getDomain.inc");
include("./include/jcode.phps");
include("./include/session_start.inc");
include("./include/SessionChk.inc");
include("./include/dbcon.inc");
include("./include/mime.php");
include("./include/point.inc");
include("./include/mtcnews.inc");

//mtcnews.incから取得
$Comment_tel = jcodeconvert($Mail_Keitai, 1, 3);		//携帯用
$Comment_pc = jcodeconvert($Mail_PC, 1, 3);					//PC用

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<META http-equiv="Content-Style-Type" content="text/css">
<link href="./css/style.css" rel="stylesheet" type="text/css">
<TITLE>送信完了</TITLE>
<script language="javascript">
function pageJump(){
		document.frm.action = "MST1143.php";
		document.frm.method="POST";
		document.frm.submit();
}
</script>
</HEAD>
<BODY onload="pageJump();" bgcolor="White">
<?PHP 
	//ヘッダー
	include("./include/header.inc");
?>
<br>
<br>
<br>
<center>
<B><FONT color=blue size=5>送信中です。しばらく待ちください。</FONT></B>
<br>
<form name="frm">
<table>
<tr>
<br>
<br>
<td><FONT size=5><div id="maxcount"></div></FONT></td>
<td><FONT size=5>件中</FONT></td>
<td><FONT size=5><div id="count"></div></FONT></td>
<td><FONT size=5>件送信しました。</FONT></td>
<tr>
</table>
<br>
<B><FONT color=red size=5>※この画面で何か操作しますと、処理が正常におこなわれません。</FONT></B>
<br>
</form>
<br>
</center>
<?PHP 

//***** 表示項目名を取得 *****//
$strSQL = "SELECT disp_id, disp_name FROM mst_disp WHERE disp_id = '6'";
$objRecSet = pg_exec($strSQL);
if($objRecSet==false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
}
$objData = pg_fetch_object($objRecSet, 0);
$strDisp_Name = JcodeConvert($objData->disp_name, 1, 1);

//***** 開催日時 *****//
$message_date = "";
$message_time = "";

//***** 最大送信数 *****
$User_List = split ("," , $_POST["Send_User"]);

//***** 管理者情報取得 *****//
$strSQL = "SELECT pc_mail_addr, mail_addr FROM syain_tbl WHERE syain_cd = " . $_SESSION["PHP_POST_SYAIN_CD"]. " ORDER BY syain_cd";
$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;
		}
}

//ドメイン
$strDomeName=getDomain();

//*** メール連番最大数取得 ***//
$strSQL = "SELECT Max(mail_id) as Max_id FROM mail_data";
$objRecSet = pg_exec($strSQL);
if($objRecSet==false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
}
$Max_id = pg_result($objRecSet,0,"Max_id")+1;

//*** 暗号用乱数取得 ***//
$num = 1;
while ($num >= 1){
		$strArray = array(0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z);
		for ($i = 0; $i < (10 - $mail_disp_flg); $i++){
			$tmp_num = rand(0, 51);
			$strTmp = $strTmp . $strArray[$tmp_num];
		}

		$angou = $strTmp;
		$sql = "SELECT * FROM mail_data WHERE angou_id = '$angou'";
		$rtn = pg_exec($pg_con, $sql);
		if($rtn == false){
			echo "SQLの実行に失敗しました。(#1)";
			exit;
		}
		$num = pg_numrows($rtn);
}
$Angou_id = $angou;

//*** 送信日時 ***
$strSubmitTime = date("YmdHis");
if (strlen($strSubmitTime) == 12) {
		$strSubmitTime = "20" . $strSubmitTime;
}

//*** 件名 ***
$strKenmei = "(〒)".$strDisp_Name . ":" . $_POST["kenmei"];
$strKenmei = JcodeConvert($strKenmei, 1, 1);

//*** 本文 ***
$strText ="※このメールはめ〜るNiポンからの送信確認メールです。\n".$_POST["txtMemo"];
$strText = JcodeConvert($strText, 1, 1);


//***** メール送信情報登録 *****//
$strSQL  = "INSERT INTO mail_data ";
$strSQL .= "(";
$strSQL .= " mail_id      , ";
$strSQL .= " angou_id     , ";
$strSQL .= " message_date , ";
$strSQL .= " message_time , ";
$strSQL .= " subject_name , ";
$strSQL .= " contents     , ";
$strSQL .= " admin_cd     , ";
$strSQL .= " send_date    , ";
$strSQL .= " send_type    , ";
$strSQL .= " send_alarm   , ";
$strSQL .= " reserva_flg  , ";
$strSQL .= " reserva_date , ";
$strSQL .= " reserva_time   ";
$strSQL .= ")VALUES (";
$strSQL .= $Max_id.", ";
$strSQL .= "'".$Angou_id."',";
$strSQL .= "'".$message_date."',";
$strSQL .= "'".$message_time."',";
$strSQL .= "'".$strKenmei . "'" . ", ";
$strSQL .= "'".$strText . "'". ", ";
$strSQL .= $_SESSION["PHP_POST_SYAIN_CD"]. ", ";
$strSQL .= "'".$strSubmitTime."',";
$strSQL .= $_POST["SendType"].",";
$strSQL .= "0,";
$strSQL .= "0,";
$strSQL .= "'',";
$strSQL .= "'' ";
$strSQL .= ") ";
//echo $strSQL;
$objRecSet = pg_exec($strSQL);
if($objRecSet==false){
		echo("SQL実行に失敗しました(INSERT)");
		exit;
}

$Header1 = "";
$Headers['From']=$NOREPLY_ADDR;
$Headers['X-Mailer']="PHP/".phpversion(); //メール送信プログラムの表示
$logFrom = array(); //log配列初期化
$logTo = array();
$logType = array();
$logDate = array();
$intCountLog=0;

for($i=0;$i<count($User_List)-1;$i++){
		$Header ="";//ヘッダー部クリア

		//*** 宛先情報取得 ***
		$strSQL  = "SELECT ";
		$strSQL .= " angou_cd    , ";
		$strSQL .= " mail_addr   , ";
		$strSQL .= " pc_mail_addr, ";
		$strSQL .= " name_kj_sei , ";
		$strSQL .= " name_kj_mei   ";
		$strSQL .= "FROM ";
		$strSQL .= " syain_tbl ";
		$strSQL .= "WHERE";
		$strSQL .= " syain_cd = " . $User_List[$i] . " ";
		$objRec = pg_exec($strSQL);
		if($objRec==false){
				echo("SQL実行に失敗しました(SELECT)");
				exit;
		}
		$objUsrData = pg_fetch_object($objRec, 0);

		$Mail_Nasi = 0;
		$strAngou  = $objUsrData->angou_cd;
		$strTo     = $objUsrData->pc_mail_addr;
		$strToMob  = $objUsrData->mail_addr;
		$strToName = $objUsrData->name_kj_sei.$objUsrData->name_kj_mei;

		switch ($_POST["SendType"]) {
			case "0":
					if($objUsrData->pc_mail_addr=="" && $objUsrData->mail_addr==""){
							$Mail_Nasi=100;					//PCか携帯メールアドレスが未登録の人
							$SendRes = 3;
					}elseif($objUsrData->pc_mail_addr=="" && $objUsrData->mail_addr!=""){
							$SendRes = 1;
					}elseif($objUsrData->pc_mail_addr!="" && $objUsrData->mail_addr==""){
							$SendRes = 2;
					}elseif($objUsrData->pc_mail_addr!="" && $objUsrData->mail_addr!=""){
							$SendRes = 0;
					}

					break;

			case "1":
					if($objUsrData->mail_addr==""){
							$Mail_Nasi=100;					//携帯メールアドレスが未登録の人
							$SendRes = 3;
					}else{
							$SendRes = 1;
					}

					break;

			case "2":
					if($objUsrData->pc_mail_addr==""){
							$Mail_Nasi=100;					//PCメールアドレスが未登録の人
							$SendRes = 3;
					}else{
							$SendRes = 2;
					}

					break;

		}

		$strSubject = "=?iso-2022-jp?B?" . base64_encode(jcodeconvert(stripslashes($strKenmei), 0, 3)) . "?=";

		$strComment  = $_SESSION["PHP_POST_DB_USER_NAME"]."の皆様(".$strToName."様)へ\n\n";
		$strComment .= "下記のアドレスからメール内容を確認してください。\n";
		if($_SERVER["ENV"] == "test"){
                	$strComment .= "https://etc.media-tek.jp/mail_ni_pon_v2/USER0000.php?m=" . $angou;
		}
		if($_SERVER["ENV"] == "production"){
			$strComment .= "http://www.mtc-sv.jp/mail_ni_pon_v2/USER0000.php?m=" . $angou;
		}

		$strComment .= "&s=" . $strAngou ."&d=" .$_SESSION["PHP_POST_DB_ANGOU"]. "\n\n";

		$strComment = jcodeconvert($strComment, 1, 3);

		$Header  = "";//ヘッダー部クリア
		$Header1 = "";

		//***** 携帯電話へ送信 *****//
		//PEARのmimeクラス設定
		$mime = new Mail_mime("\r\n");
		$mime->_build_params['text_charset'] = 'iso-2022-jp'; //本文テキストの文字コードをJISに設定する

		//本文のテキストの指定
		$mime->setTXTBody($strComment);
		$strComment = $mime->get();

		$Headers = $mime->headers($Headers);
		while (list($key,$val)=each($Headers)) {
				$Header1 .= $key.": ".$val."\r\n";
		}

		if($_POST["SendType"]==0 || $_POST["SendType"]==1){
				if($strToMob!=""){
						$intBool2 = mail($strToMob,$strSubject,$strComment.$Comment_tel.$koukokuTEL.jcodeconvert(group_admin_addr($strSubmitAdd), 1, 3),$Header1,"-f ".$NOREPLY_ADDR);//携帯に送信
				}else{
						$intBool2 = true;
				}
		}else{
				$intBool2 = true;
		}

		//***** PCへ送信 *****//
		//メールボディの取得
		$strComment = $mime->get();

		//メールヘッダの取得
		$Headers = $mime->headers($Headers);

		//メールヘッダの配列を文字列に組み立てる
		while (list($key,$val)=each($Headers)) {
				$Header .= $key.": ".$val."\r\n";
		}

		if($_POST["SendType"]==0 || $_POST["SendType"]==2){
				if($strTo!=""){
						$intBool = mail($strTo, $strSubject, $strComment.$Comment_pc.$koukokuPC.jcodeconvert(group_admin_addr($strSubmitAdd), 1, 3), $Header,"-f ".$NOREPLY_ADDR);//PCに送信
				}else{
						$intBool = true;
				}
		}else{
				$intBool = true;
		}

		//***** 送信履歴保存 *****//
		//echo "intBool =".$intBool ."<hr>";
		//echo "intBool2=".$intBool2."<hr>";
		if($intBool && $intBool2){
				//*** 回答情報 ***//
				$strSQL  = "INSERT INTO ";
				$strSQL .= " mail_info (";
				$strSQL .= "  mail_id, ";
				$strSQL .= "  syain_cd, ";
				$strSQL .= "  check_flg ";
				$strSQL .= ") VALUES (";
				$strSQL .= $Max_id.", ";
				$strSQL .= $User_List[$i].",";
				$strSQL .= $Mail_Nasi;
				$strSQL .= ")";
				$objInsRet = pg_exec($strSQL);
				if($objInsRet==false){
						echo("SQL実行に失敗しました(INSERT)");
						exit;
				}

				//*** 送信パターン保存 ***//
				$strSQL  = "INSERT INTO ";
				$strSQL .= " mail_send_tbl (";
				$strSQL .= "  mail_id , ";
				$strSQL .= "  syain_cd, ";
				$strSQL .= "  send_flg  ";
				$strSQL .= ")VALUES (";
				$strSQL .= $Max_id . ", ";
				$strSQL .=  "'" . $User_List[$i]. "', ";
				$strSQL .= $SendRes;
				$strSQL .= ")";
				$objInsRet = pg_exec($strSQL);
				if($objInsRet==false){
						echo("SQL実行に失敗しました(INSERT)");
						exit;
				}
		}

		$Max_User = count($User_List)-1;
		echo "<script language='javascript'>";
		echo "document.getElementById('maxcount').innerHTML ='".$Max_User."';";
		echo "document.getElementById('count').innerHTML ='".$i."';";
		echo "</script>";
		ob_flush();
		flush();
}

?>
</BODY>
</HTML>