1

ホームページからメールを送信できるようにしたいのですが、思うように動作しません。私はメールを受け取りますが、自宅からとは言いません。不明と言うだけです。私がこれを2つの異なる場所に持っていること。私が他のテキストエリアを使用している他の場所では、メールですべてを受け取り、正常に動作しますが、私が作業しようとしているこの他の場所では、メールを追加するだけで、すべての情報とともに送信する必要があります。

私のページの私のコード:

<form id="subscribe" class="clearfix" method="post" action="get_mail.php">
    <div class="field alignleft">
       <input type="text" value="Enter your email" onclick="if(this.value=='Enter your email')this.value='';" onblur="if(this.value=='')this.value='Enter your email';" />
     </div>
     <div class="search-btn">
        <input type="submit" value="" />
     </div>
</form>

それから私はこのphpスクリプトを持っています

<?php

    //-----------------------------------------------------
    //-----------------------------------------------------
    $address= "xxxxx.xxxxx@outlook.com";
    //-----------------------------------------------------
    //-----------------------------------------------------

    $name = $_REQUEST["name"];
    $email = $_REQUEST["email"];
    $website = $_REQUEST["website"];
    $subject .= "You have an email from your web site (from $name)! \n\n";
    $message_content = strip_tags($_REQUEST["message"]);

    $headers = "From: $name <$email>\n";
    $headers .= "Reply-To: $subject <$email>\n";

    $message = "--$mime_boundary\n\n";

    $message .= "You have an email from your web site: \n\n\n";
    $message .= "Name: $name \n\n";
    $message .= "Email: $email \n\n";
    $message .= "Website: $website \n\n";
    $message .= "Message: $message_content \n\n";

    $message .= "--$mime_boundary--\n\n";

    $mail_sent = mail($address, $subject, $message, $headers);
    echo $mail_sent ? "Success, mail sent!" : "Mail failed";

?>
4

2 に答える 2

3

2つのこと:

  1. $headers の "\n" を "\r\n" に置き換えてみてください。

  2. 私の知る限り、一部のホスト (たとえば、GoDaddy や Hostgator がこれを行うと思います) は、送信された電子メールの「送信元」の値を上書きし、あなたが持っている値に変更します。これは、ホスティング アカウントに「from@domain.com」を明示的に指定しないと、そのアドレスからメールを送信できず、常に上書きされることを意味します。これを確認するには、ホストに連絡する必要があります。可能であれば、別のサーバーのスクリプトも確認することをお勧めします。

于 2012-08-23T18:38:07.597 に答える
2

あなたのフォームフィールドには名前がないようです - あなたのコードはここにあります:

$name = $_REQUEST["name"];
$email = $_REQUEST["email"];
$website = $_REQUEST["website"];

「name」、「email」、「website」という名前のフォーム フィールドが必要です。たとえば、「メール」フィールドは次のようにする必要があります。

<input type="text" name="email" ... />
于 2012-08-24T00:41:49.513 に答える