訪問者がフォームに入力した電子メール アドレスを使用して、(Web サイトの訪問者ではなく) 私の受信トレイに電子メールを送信する単純なフォームを Web サイトに設定しようとしています。それほど複雑ではありませんが、テストしていると、メールアドレスが機能しないようです。エラーメッセージも表示されません。以下にコードを貼り付けます。
少なくとも、DNS またはホスト構成に問題があるかどうかを知りたいです。ウェブサイトを構築するのはこれが初めてなので、コード、HTML (ここには貼り付けられていない別のファイル)、またはサーバーまたはホストの設定に問題があるかどうかはわかりません。
さらに難しいことに、正しく構成されていないというエラー メッセージが表示されたことがありますが、エラー メッセージが表示されなくなりました。私はコードを変更したとは思わない。そのため、サーバー側で何か他のことが起こっている可能性があると思われます。それは実現可能ですか?
ご覧いただきありがとうございます。
<?php
$to = "MyEmailInbox@gmail.com";
$from = "mail@example.com";
$headers = "From: " . $from . "\r\n";
$subject = "New subscription";
$body = "New user subscription: " . $_POST['email'];
if( filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) )
{
if (mail($to, $subject, $body, $headers, "-f " . $from))
{
echo 'You will be notified on <b> ' . $_POST['email'] . '</b> :)';
}
else
{
echo 'There was a problem with your e-mail (' . $_POST['email'] . ')';
}
}
else
{
echo 'There was a problem with your e-mail (' . $_POST['email'] . ')';
}
index.html に関する限り、送信ボタンの横に 1 つのフォームがあります。フォームはおそらくユーザー情報を取得し、無意味なフィルターを適用してから、[送信] ボタンが PHP スクリプトを呼び出します。以下の関連する index.html コードを見つけてください。
<!-- SIGN UP SECTION ############################################### -->
<section id="signup">
<div class="row">
<!-- Title -->
<div class="seven columns centered">
<h2>Sign up to receive our newsletter!</h2>
<!-- Begin the Form -->
<form action="form_sender.php" method="post">
<!-- Input of E-Mail -->
<div class="eight columns">
<input name="email" class="email" type="text" placeholder="YOUR E-MAIL PLEASE ?">
</div>
<!-- Send Button -->
<div class="four columns">
<button name="send" type="submit" class="submit">SEND</button>
</div>
<!-- End of the Form -->
</form>
</div>
<!-- Text Promise we do not spam -->
<div class="twelve columns centered">
<p class="spam">We do not spam.</p>
</div>
</div>
</section>