私はPHPの初心者ですから、私が知っているのは実際にはフォーラムからのものです。これらは私のphp.iniファイルで、私が行った設定PHPのメール関数はすべての設定にかかわらずfalseを返す
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = [email protected]
sendmail_path = "\"C:\xamppnew\sendmail\sendmail.exe\" -t"
;sendmail_path = "C:\xamppnew\mailtodisk\mailtodisk.exe"
これらはsendmail.iniファイルに加えられた変更
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
[email protected]
auth_password=************
[email protected]
されており、ここでは、私はメールに
を送信するために使用していたコードですされています$to = "[email protected]";
$myemail = "[email protected]";
$email_subject = "Contact form submission: $name";
$email_body = "my message";
$headers = "From: $myemail\n";
$headers .= "Reply-To: $email_address";
mail($to,$email_subject,$email_body,$headers);
header('Location: ../index-alt2.html?t="done successfully"');
あなたのヘッダリダイレクトは、ページ上に表示されますように聞こえる「T」変数を取るように見えます。これはクロスサイトスクリプティング攻撃を可能にします。リンクが共有されている場合、誰かがHTMLやスクリプトをページに挿入することができます。次のページで成功した場合は、渡された入力を表示せず、代わりにパラメータサーバー側を解釈し、メッセージを別々に表示する必要があります。 – jedifans
これは私の質問ではありません。私はメール機能がうまくいかない理由を知りたい。少なくとも、どのようにエラーを知ることができますか?私はエラーを表示していないtry catch例外メソッドを使用しています。プラス私は誰かが私の変数と悪いことをしようとするとスクリプトを処理する方法を知っている –
私は答えのセクションに私のコメントを入れていない理由は何ですか。それは副作用です。あなたの変数に対処する最も安全な方法は、ユーザーの入力が最初にそこに入ることを許さないことです。とにかく、PHPのエラーログと実際にデバッグログは、うまくいけばあなたのメールの問題の詳細を表示する必要があります。成功したかどうかを確認するには、mail()も戻ります。 – jedifans