0

これは、HTML / PhP 連絡フォームをつなぎ合わせる最初の実際の試みであるため、初歩的なミスについては事前にお詫びします。同じ問題で以前の質問を精査しましたが、実質的なものは何も見つかりませんでした。

問題は、メールが送信されないことです。これまでに試したこと: - SMTP 機能を確認しました - ホスト関連の問題ではないことを確認しました - この正確なフォーム / PHP メーラーを別のテンプレートで使用しましたが、問題なく動作しました - スパム フォルダを確認しました

お問い合わせフォーム自体は次のとおりです。

    <form action="contact.php" method="POST" id="contact-form" class="form">
    <input type="hidden" value="" name="check">
    <noscript>
    <p class="noscript">JavaScript is required to use this form, please make sure your browser supports it.</p>
    </noscript>
    <p class="input">
    <label for="name" class="label">Name</label>
    <input type="text" name="name" id="name">
    </p>
    <p class="input">
    <label for="company" class="label">Company</label>
    <input type="text" name="company" id="company">
    </p>
    <p class="input">
    <label for="email" class="label">Email</label>
    <input type="text" name="email" id="email">
    </p>
    <p class="input">
    <label for="phone" class="label">Phone</label>
    <input type="text" name="phone" id="phone">
    </p>
    <p class="dark input">
    <label for="title" class="label">Project Title</label>
    <input type="text" name="title" id="title">
    </p>
    <p class="dark input">
    <label for="timeline" class="label">Timeline</label>
    <input type="text" name="timeline" id="timeline">
    </p>
    <p class="dark textarea">
    <label for="details" class="label">Details</label>
    <textarea name="details" id="details"></textarea>
    </p>
    <p>
    <label for="send" class="send-label">Everything look good? Click send.</label>
    <input type="submit" value="Submit" name="submit" class="button">
    </p>
    </form>

PHPメーラーは次のとおりです。

    <?php
    $field_name = $_POST['name'];
    $field_company = $_POST['company'];
    $field_email = $_POST['email'];
    $field_phone = $_POST['phone'];
    $field_title = $_POST['title'];
    $field_timeline = $_POST['timeline'];
    $field_message = $_POST['details'];

    $mail_to = 'MyEmail@email.com';
    $subject = 'Quote request from '.$field_name;

    $body_message = 'From: '.$field_name."\n";
    $body_message .= 'E-mail: '.$field_email."\n";
    $body_message .= 'Message: '.$field_message;

    $headers = 'From: '.$field_email."\r\n";
    $headers .= 'Reply-To: '.$field_email."\r\n";

    $mail_status = mail($mail_to, $subject, $body_message, $headers);

    if ($mail_status) { ?>
    <script language="javascript" type="text/javascript">
    alert('Thank you for the message. We will contact you shortly.');
    window.location = 'contact.html';
    </script>
    <?php
    }
    else { ?>
    <script language="javascript" type="text/javascript">
    alert('Message failed. Please contact the webmaster.');
    window.location = 'contact.html';
    </script>
    <?php
    }
    ?>

参考までに、「MyEmail@email.com」は私が使用しているメールアドレスではありません。プライバシー保護のため代替品を使用しました。

ありがとうございました!

4

2 に答える 2

0

PHP からメールを送信するのは困難を伴います。コードにエラーがない場合でも、次の理由でメールが配信されない可能性があります (必要な数を選択してください)。

  • サーバー上の電子メール アドレスから送信されたようには見えません。
  • アウトバウンド電子メールは、要求するまでデフォルトでブロックされます。
  • ポート 25 の送信メールはブロックされ、特定のサーバーを使用する必要があります。
  • サーバーがブラックリストに登録されています。
  • メッセージがスパム フィルターによってブロックされている。
  • 他の理由。

人生を楽にしてください。swiftmailerPHPmailerなどのライブラリを使用してメールの送信を処理し、送信サーバーのアドレスに配信するなどの簡単なことを試してください。そこからワークアップ。SMTP 認証を使用しなければならないことを覚悟してください。また、場合によっては、メールを送信するために有料の外部サービスを使用する必要があります。

于 2013-07-10T05:40:23.680 に答える
0

$field_messageは空白です。フォームとメール処理スクリプトのどこにありますか?

于 2013-07-10T05:42:08.000 に答える