モバイルアプリのリクエストを処理するために使用される次のPHPコードがあるため、ブラウザで実行されないため、メール機能が機能しないことがわかりますが、別のphpでメール機能コードを実行するとファイルをブラウザで開くと、メールを送信できます。PHPファイルがブラウザで実行されていなくてもメールを送信できるようにするにはどうすればよいですか?
ここに私のPHPコードがあります:
$_Type = $_POST['Type'];
$_ClientID = $_POST['ClientID'];
$_TechID = $_POST['TechID'];
$_SiteID = $_POST['SiteID'];
function checkin($DB, $TechID, $ClientID, $SiteID){
$dbConnection = mysql_connect($DB['server'], $DB['loginName'], $DB['password']);
if(!$dbConnection){
die('Error! ' . mysql_error());
}
mysql_select_db($DB['database'], $dbConnection);
$result1 = mysql_query("SELECT COUNT(*) FROM Log") or die('Error! ' . mysql_error());
$query = "SELECT `Type` FROM `Log` WHERE `TechID` = '".$TechID."' ORDER BY LogTime DESC LIMIT 1";
$result2 = mysql_query($query) or die('Error! ' . mysql_error());
while($row1 = mysql_fetch_array($result1)){
$count = $row1['COUNT(*)'];
if(mysql_num_rows($result2) > 0){
while($row2 = mysql_fetch_array($result2)){
if(trim($row2['Type'])!="Checkin"){
$count = $count+1;
$timezone = "Asia/Hong_Kong";
if(function_exists('date_default_timezone_set'))
date_default_timezone_set($timezone);
$Time = date('Y/m/d H:i');
mysql_query("INSERT INTO Log (LogID, TechID, ClientID, SiteID, LogTime, Type)
VALUES (".$count.", '".$TechID."', ".$ClientID.", ".$SiteID.", '".$Time."', 'Checkin')");
}else{
mail('me@gmail.com', 'Test mail', 'If you can read this, everything was fine!');
}
}
}else{
$count = $count+1;
$timezone = "Asia/Hong_Kong";
if(function_exists('date_default_timezone_set'))
date_default_timezone_set($timezone);
$Time = date('Y/m/d H:i');
mysql_query("INSERT INTO `Log` (`LogID`, `TechID`, `ClientID`, `SiteID`, `LogTime`, `Type`)
VALUES (".$count.", '".$TechID."', ".$ClientID.", ".$SiteID.", '".$Time."', 'Checkin')");
}
}
}
checkin($DB, $_TechID, $_ClientID, $_SiteID);
ここでの状況は、ユーザーが以前にチェックインしたことがあるかどうかをプログラムがチェックし、チェックインしたことがある場合はメールが送信されることです。これが私がやりたいことです。