0

私はしばらくの間SOを検索してきましたが、私の問題に対する答えが見つからないようです。適切なメール アドレスにメールを正常に送信する PHP メール スクリプトがありますが、問題はありません。Gmail をメール クライアントとして使用しており、問題なく動作していますが、ホスト サイト (active24 の Mamutmail) で Web メールを確認すると、多くのメールが Gmail にリダイレクトされないことに気付きました。

1 年前にメール スクリプトを使い始めたとき、フォームの有効性を確認しているにもかかわらず、空のメールを大量に受け取りました。1 日に 5 ~ 8 通の空メールが届きますが、Google でよく検索して「ランダム ホストの問題」であると判断したため、Gmail でそれらのメールを除外することにしました (わかっていますが、ばかげています)。

要約すると、次のようになります。

--> Web サイトのフォームから送信されたメールは、ホストの Web メールに送信されますが、Gmail にインポートされないメールもあります

--> バリデーションをしているのに、毎日空メールがたくさん来る

これは私のフォームコードです:

<form id="mailForm" method="post" action="sendMailPre.php">
            Ditt namn <span style="color: red;">*</span><br/>
            <input type="text" name="name" class="required" /><br/><br/>

            Din mailadress <span style="color: red;">*</span><br/>
            <input type="text" name="mail" class="required email" /><br/><br/>

            Ditt telefonnummer<br/>
            <input type="text" name="tele" /><br/><br/>

            Din stad<br/>
            <input type="text" name="city" /><br/><br/>

            Ditt meddelande <span style="color: red;">*</span><br/>
            <textarea type="text" name="message" rows="8" class="required"></textarea><br/><br/>

            <input type="submit" class="submit" value="Skicka meddelande" /><br/><br/>
            </form>

これは PHP のメール スクリプトです。

$ToEmail = 'test@mail.com'; 
$EmailSubject = $_POST["name"] . ' - Mail från hemsidan';
$mailheader = 'From: ' . $_POST["name"] . '' . "\n" .
'Reply-To: ' . $_POST["mail"] . '' . "\n" .
"X-Mailer: PHP/" . phpversion()."\n";


$mailheader .= "MIME-Version: 1.0\n";
$mailheader .= "Content-Type: text/html; UTF-8\n";

$message = '<html><head>';
$message .= '<style>';
$message .= 'body{line-height: 60%; padding: 35px; margin: 0;}';
$message .= '</style></head>';
$message .= '<body>';
$message .= '<span style="font-family: Trebuchet MS; font-size: 16px; font-weight: bold; color: #4c7eb0; font-weight: normal;">NAMN</span><br/>';
$message .= str_replace("\n", "<br />", ($_POST["name"])); 
$message .= '<br/><br/>';
$message .= '<span style="font-family: Trebuchet MS; font-size: 16px; font-weight: bold; color: #4c7eb0; font-weight: normal;">MAIL</span><br/>';
$message .= str_replace("\n", "<br />", ($_POST["mail"])); 
$message .= '<br/><br/>';
$message .= '<span style="font-family: Trebuchet MS; font-size: 16px; font-weight: bold; color: #4c7eb0; font-weight: normal;">TELEFONNUMMER</span><br/>';
$message .= str_replace("\n", "<br />", ($_POST["tele"])); 
$message .= '<br/><br/>';       $message .= '<span style="font-family: Trebuchet MS; font-size: 16px; font-weight: bold; color: #4c7eb0; font-weight: normal;">STAD</span><br/>';   $message .= str_replace("\n", "<br />", ($_POST["city"]));  $message .= '<br/><br/>';
$message .= '<span style="font-family: Trebuchet MS; font-size: 16px; font-weight: bold; color: #4c7eb0; font-weight: normal;">MEDDELANDE</span><br/>';
$message .= str_replace("\n", "<br />", ($_POST["message"])); 
$message .= '</span>';
$message .= '</body></html>';
mail($ToEmail, $EmailSubject, $message, $mailheader) or die ("Meddelandet kunde inte skickas.");

助けていただければ幸いです。前もって感謝します!

4

1 に答える 1

2

あなたのスクリプトは、誰かがそのページをロードするたびに電子メールを送信するように設定されていると確信しています。隠し変数を含めます:

<input type="hidden" name="formEmail" value="1"/>

次に、sendMailPre.php ページの $_POST["formEmail"] でそれを確認し、その変数が存在する場合にのみメールを送信します。

おそらく、検索エンジンのボットがページにアクセスしているのだと思います。

于 2013-04-16T18:05:15.310 に答える