最近、Webページを作成し、no-ip.comアドレスのラズベリーパイでホストされているapache2サーバーに投稿して、HTML、js、CSS、 PHPを学ぶための私の最初の本当のプロジェクトは、私にメールを送るための簡単なフォームを作成していますが、mail()関数の問題は何もエラーなく実行し続けますが、メールは実際に送信しません。ここでは、php mail()関数からメールを受信していません
の形式である:ここでは
<form class="" action="/FormTesting/sendMail.php" method="post">
Name:<br><input type="text" name="name" value="" required><br>
Email:<br><input type="text" name="email" value="" required><br>
Message:<br><textarea name="message" rows="8" cols="80" required></textarea><br>
Subject:
<input type="radio" name="subject" value="Hello!">Hello!
<input type="radio" name="subject" value="Whats up">Whats Up!<br>
<input type="submit" name="submit" value="Submit">
</form>
は、フォームの「アクション」属性でのPHPファイルの参照です:
<?php
if($_SERVER["REQUEST_METHOD"] == "POST") {
$to = "[email protected]";
$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];
$subject = $_POST["subject"];
echo $name;
echo $email;
echo $message;
echo $subject;
$headers = array("From: " . $email,
"Reply-To: " . $to,
"X-Mailer: PHP/" . PHP_VERSION);
mail($to, $subject, $message, $header);
} else {
echo $_SERVER["REQUEST_METHOD"];
}
?>
私はこの質問は前に頼まれていることを理解し、私が持っています他の答えによって設定されたメソッドのほとんどを試しましたが、私はまだPHPのmail()関数が動作するように見えません。私が持っている最善の情報は、メールを送信できるようにサーバー自体に何らかのインストールや書式設定を行わなければならないということですが、まだ十分に文書化されているか説明されていません。 (すなわちphpmailerの - まだ...どのように?)
EDIT:
私はメール機能の戻り値をチェックします。 。 。if(mail("[email protected]", "subject", "message", $headers)) {
echo "TRUE";
}else {
echo "FALSE";
}
。 。 。それは虚偽に戻っていることが分かります。私はそれが私のコードのエラーであることを意味すると仮定します。
編集:私はこの質問を投稿する前に調査をしたと述べたとき
は、どうやら私は明確ではありませんでした。とにかく質問したので、私は質問の回答として与えられたすべてを試しました。
あなたは 'mail()'関数の戻り値をチェックしません。それはあなたがすべきではありません。 PHPマニュアルの各関数には戻り値が書かれており、返り値について知り、ほとんどのことを行うためにそれを扱います - http://php.net/mail - あなたの質問を編集し、どの戻り値を期待して返しますかあなたが得た価値。メールの返信が真で、メールを受け取らない場合、これはPHPの範囲外です。 – hakre
戻り値を確認しました。それは偽で、私はそれについて何をすべきかわかりません。 –
これは、電子メールの送信が失敗したことを意味します(直接)。あなたのアプリケーションでそれを扱うようにしてください。これは有効な戻り値です(起こりうる)。残りはトラブルシューティングですが、まずエラーケースでコードを動作させてください。例えば。電子メールの送信が失敗したというメッセージをユーザに表示する。 – hakre