開発サイトとライブ サイトに 2 つの異なるサーバーを使用しています。電子メールの確認を送信する Web サービス機能は、開発サイトでは機能していますが、ライブ サイトでは機能していません。私のメール確認機能は次のとおりです。
function getEmailConfirmation($UserName, $ChecklistID,$UserID,$AnswerBulkID, $TotalSubmitted){
if ( ($UserID == '') || (!isset($UserID)) ) {
return error("partial");
}
$entry = new Entry();
$entry_date_check = date('Y-m-d'); //for check if already
$count_tbl_answers = $entry->listEntry("SELECT count(*) as total_from_answers FROM tbl_answers where user_id='".$UserID."' and answer_bulk_id ='".$AnswerBulkID."' and date(ent_date) = '".$entry_date_check."' ");
$to = "****@gmail.com";
$subject = "TDL Checklist email";
$message = "Hello there! \n User ID: ".$UserID." \n User Name: ".$UserName."\n Check List ID: ".$ChecklistID."\n Answer Bulk ID: ".$AnswerBulkID;
$from = "TLD-Email-Confirmation";
$headers = "From:" . $from;
if(($count_tbl_answers[0]['total_from_answers']) == $TotalSubmitted){
mail($to,$subject,$message,$headers);
$result = array(
"user_id" => $UserID,
"user_name" => $UserName,
"check_list_id" => $ChecklistID,
"answer_bulk_id" => $AnswerBulkID,
);
} else{
$delete_bulk = $entry->query("delete FROM tbl_answerbulk WHERE user_id ='".$UserID."' and check_list_id ='".$ChecklistID."' and id ='".$AnswerBulkID."' ");
$delete_answer = $entry->query("delete FROM tbl_answers WHERE user_id='".$UserID."' and answer_bulk_id ='".$AnswerBulkID."' ");
return error("custom","","Could not submit your answer this time. Please try again later.");
}
$message = json_encode(
$result
);
$fin_data['response'] = json_encode(array('Message'=>'ok','Data'=>$message));
return $fin_data;
}
この機能は開発サーバーでは完全に機能しますが、ライブ サーバーでは機能しません。その理由は何ですか?
注: メール機能は Live サイトでは機能しませんが、メール機能の直後にある結果の配列を返します。あれは:
@mail($to,$subject,$message,$headers);
$result = array(
"user_id" => $UserID,
"user_name" => $UserName,
"check_list_id" => $ChecklistID,
"answer_bulk_id" => $AnswerBulkID,
);
私も試し ini_set('smtp_port', 587);
てみましたが、うまくいき@mail($to,$subject,$message,$headers);
ません。