自作WEBサービスにパスワードリマインダーの機能を実装しようとしています。
前提・実現したいこと
メール送信処理を書いたPHPファイルをXserverに上げて
メールを送れるようにしたい。(PHPファイルの設置場所が分からない)
メール送信処理を書いたphpは既に準備してあります。
試したこと
Xserver メール送信処理ファイル PHP 設置場所でググりました。
ググって見つけた以下のサイトを参考にして進めましたが、手順の最後にある
設定が完了したエックスサーバに、メールを送信する処理を書いたphpファイルを設置する方法、設置場所が分かりませんでした。
以下のコードが passRemindSend.php の内容です。
<?php //共通変数・関数ファイルを読み込み require('function.php'); debug('「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「'); debug('「 パスワード再発行メール送信ページ '); debug('「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「'); debugLogStart(); //ログイン認証はなし(ログインできない人が使う画面だから) //================================= // 画面処理 //================================= //post送信されていた場合 if (!empty($_POST)) { debug('POST送信があります。'); debug('POST情報:' . print_r($_POST, true)); //変数にPOST情報代入 $email = $_POST['email']; //未入力チェック validRequired($email, 'email'); if (empty($err_msg)) { debug('未入力チェックOK。'); //emailの形式チェック validEmail($email, 'email'); //emailの最大文字数チェック validMaxLen($email, 'email'); if (empty($err_msg)) { debug('バリデーションOK.'); //例外処理 try { //DBへ接続 $dbh = dbConnect(); //SQL文作成 $sql = 'SELECT count(*) FROM users WHERE email = :email AND delete_flg = 0'; $data = array(':email' => $email); //クエリ実行 $stmt = queryPost($dbh, $sql, $data); //クエリ結果の値を取得 $result = $stmt->fetch(PDO::FETCH_ASSOC); //EmailがDBに登録されている場合 if ($stmt && array_shift($result)) { debug('クエリ成功。DB登録あり'); $_SESSION['msg_success'] = SUC03; $auth_key = makeRandKey(); //認証キー生成 //メール送信 $from = 'brevet@shingo5200.xsrv.jp'; $to = $email; $subject = '【パスワード再発行認証】| 超長距離サイクリングの装備術'; $comment = <<<EOF 本メールアドレス宛にパスワード再発行のご依頼がありました。 下記のURLにて認証キーをご入力頂くとパスワードが再発行されます。 パスワード再発行認証キー入力ページ:◯◯◯◯◯ 認証キー:{$auth_key} *認証キーの有効期限は30分となります 認証キーを再発行されたい場合は下記ページより再度再発行をお願い致します。 ◯◯◯◯◯ ////////////////////////////////////////// 超長距離サイクリングの装備術 URL ◯◯◯◯◯ E-mail brevet@shingo5200.xsrv.jp ////////////////////////////////////////// EOF; sendMail($from, $to, $subject, $comment); debug('sendMailの中身' . print_r($from, true)); debug('sendMailの中身' . print_r($to, true)); debug('sendMailの中身' . print_r($subject, true)); debug('sendMailの中身' . print_r($comment, true)); //認証に必要な情報をセッションへ保存 $_SESSION['auth_key'] = $auth_key; $_SESSION['auth_email'] = $email; $_SESSION['auth_key_limit'] = time() + (60 * 30); //現在時刻より30分後のUNIXタイムスタンプを入れる debug('セッション変数の中身:' . print_r($_SESSION, true)); header("Location:passRemindRecieve.php"); //認証キー入力ページへ } else { debug('クエリに失敗したかDBに登録のないEmailが入力されました。'); $err_msg['common'] = MSG07; } } catch (Exception $e) { error_log('エラー発生:' . $e->getMessage()); $err_msg['common'] = MSG07; } } } } ?> <?php $siteTitle = 'パスワード再発行メール送信'; require('head.php'); ?> <body class="page-signup page-1colum"><!-- メニュー --> <?php require('header.php'); ?> <p id="js-show-msg" style="display:none;" class="msg-slide"> <?php echo getSessionFlash('msg_success'); ?> </p> <!-- メインコンテンツ --> <div id="contents" class="site-width"> <!-- Main --> <section class="main"> <div class="form-container"> <form action="" method="post" class="form"> <p>ご指定のメールアドレス宛にパスワード再発行用のURLと認証キーをお送り致します。</p><br> <div class="area-msg"> <?php if (!empty($err_msg['common'])) echo $err_msg['common']; ?> </div> <label class="<?php if (!empty($err_msg['email'])) echo $err_msg['email']; ?>"> E-mail <input type="text" name="email" value="<?php echo getFormData('email'); ?>"> </label> <div class="area-msg"> <?php if (!empty($err_msg['email'])) echo $err_msg['email']; ?> </div> <div class="btn-container"> <input type="submit" class="btn btn-mid" value="送信する"> </div> <a href="mypage.php" class="a_href-change">< マイページに戻る</a> <form> </div> </section> </div> <!-- footer --> <?php require('footer.php'); ?>
以下が送信ボタンを押した時のデバッグの内容です。
デバッグを見るとメールは送信されているようですが、実際にはメールは届いていません。
[11-Jul-2019 16:45:07 Asia/Tokyo] デバッグ:現在日時タイムスタンプ:1562831107
[11-Jul-2019 16:46:01 Asia/Tokyo] デバッグ:「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「
[11-Jul-2019 16:46:01 Asia/Tokyo] デバッグ:「 パスワード再発行メール送信ページ
[11-Jul-2019 16:46:01 Asia/Tokyo] デバッグ:「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「
[11-Jul-2019 16:46:01 Asia/Tokyo] デバッグ:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[11-Jul-2019 16:46:01 Asia/Tokyo] デバッグ:セッションID:t7up3srgvdchfunaoc5l7v0a5l
[11-Jul-2019 16:46:01 Asia/Tokyo] デバッグ:セッション変数の中身:Array
(
[msg_success] =>
[auth_key] => SgyfcZ2c
[auth_email] => tsunoda123tobai@gmail.com
[auth_key_limit] => 1562832907
)
[11-Jul-2019 16:46:01 Asia/Tokyo] デバッグ:現在日時タイムスタンプ:1562831161
[11-Jul-2019 16:58:53 Asia/Tokyo] デバッグ:「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「
[11-Jul-2019 16:58:53 Asia/Tokyo] デバッグ:「 パスワード再発行メール送信ページ
[11-Jul-2019 16:58:53 Asia/Tokyo] デバッグ:「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「
[11-Jul-2019 16:58:53 Asia/Tokyo] デバッグ:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[11-Jul-2019 16:58:53 Asia/Tokyo] デバッグ:セッションID:khk9v0u7orpccd3m80o03do0ej
[11-Jul-2019 16:58:53 Asia/Tokyo] デバッグ:セッション変数の中身:Array
(
[msg_success] =>
[auth_key] => SgyfcZ2c
[auth_email] => tsuno123tobai@gmail.com
[auth_key_limit] => 1562832907
)
[11-Jul-2019 16:58:53 Asia/Tokyo] デバッグ:現在日時タイムスタンプ:1562831933
[11-Jul-2019 16:58:53 Asia/Tokyo] デバッグ:POST送信があります。
[11-Jul-2019 16:58:53 Asia/Tokyo] デバッグ:POST情報:Array
(
[email] => tsuno123tobai@gmail.com
)
[11-Jul-2019 16:58:53 Asia/Tokyo] デバッグ:未入力チェックOK。
[11-Jul-2019 16:58:53 Asia/Tokyo] デバッグ:バリデーションOK.
[11-Jul-2019 16:58:53 Asia/Tokyo] デバッグ:クエリ成功。
[11-Jul-2019 16:58:53 Asia/Tokyo] デバッグ:クエリ成功。DB登録あり
[11-Jul-2019 16:58:54 Asia/Tokyo] デバッグ:メールを送信しました。
[11-Jul-2019 16:58:54 Asia/Tokyo] デバッグ:sendMailの中身brevet@shingo5200.xsrv.jp
[11-Jul-2019 16:58:54 Asia/Tokyo] デバッグ:sendMailの中身tsuno123tobai@gmail.com
[11-Jul-2019 16:58:54 Asia/Tokyo] デバッグ:sendMailの中身【パスワード再発行認証】| 超長距離サイクリングの装備術
[11-Jul-2019 16:58:54 Asia/Tokyo] デバッグ:sendMailの中身 本メールアドレス宛にパスワード再発行のご依頼がありました。
下記のURLにて認証キーをご入力頂くとパスワードが再発行されます。
パスワード再発行認証キー入力ページ:◯◯◯◯◯ 認証キー:lXPAJ3wR *認証キーの有効期限は30分となります 認証キーを再発行されたい場合は下記ページより再度再発行をお願い致します。 ◯◯◯◯◯ ////////////////////////////////////////// 超長距離サイクリングの装備術 URL ◯◯◯◯◯ E-mail brevet@shingo5200.xsrv.jp //////////////////////////////////////////
[11-Jul-2019 16:58:54 Asia/Tokyo] デバッグ:セッション変数の中身:Array
(
[msg_success] => メールを送信しました
[auth_key] => lXPAJ3wR
[auth_email] => tsuno123tobai@gmail.com
[auth_key_limit] => 1562833734
)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/11 07:25
2019/07/11 07:26
2019/07/11 07:26
2019/07/11 07:36
2019/07/11 07:40
2019/07/11 08:11