0

私のphpメールスクリプトは送信していないようですが、理由がわかりません。また、私のスクリプトには特定のセキュリティ上の欠陥があることも理解しています。それに関するアドバイスは大歓迎です!

ありがとうございました

  <?php

include('config.php');

$email1 = $_POST['email1'];

$id = $_POST['id'];
$fname = $_POST['fname'];
$firstname = $_POST['firstname'];
$surname = $_POST['surname'];


$to = '$email1';
$from = "$email"; 
    $subject = "SC - You Have a Reply"; 

        $body = "<html> 
  <body bgcolor=\"#FFFFFF\"> 
    <center> 
        <b>Dear $firstname</b> <br> 
        <font color=\"red\">You have a response, regarding your Ad on StudentClutter!</font> <br>
         <p> --------------------------------------------------------- </p>
         <b> $fname </b>
         <p> --------------------------------------------------------- </p>
         <p> ".stripslashes($_POST['body'])." </p>
         <br>
         <br>
         <br>
         <p> You can reply to them by email: $emailadd </p>
         <br>
         <br>
         <br>
         <p>Thank you for using studentclutter.com </p>
         <p> -- The Student Clutter Team </p>
    </center> 
  </body> 
</html>";

    // To send the HTML mail we need to set the Content-type header. 
    $headers = "MIME-Version: 1.0rn"; 
    $headers .= "Content-type: text/html; charset=iso-8859-1rn"; 
    $headers  .= "From: $from\r\n"; 

    // now lets send the email. 
    mail($to, $subject, $body, $headers); 

    echo "Message has been sent!"; 

 ?>
4

1 に答える 1

1

前後に一重引用符を使用していますが$email1、これらは必要ありません。引用符を削除すると、正常に機能するはずです。

このような

$to = $email1;

PHPMailerクラスをチェックすることをお勧めします。このクラスは、セキュリティとともに、さまざまな機能を提供します。ドキュメントを読むだけで、非常に使いやすいです。

アップデート

一部のヘッダーの最後にある改行および改行の特殊文字をエスケープしていません。行の終わりを次のように変更します。

\r\n";
于 2012-12-17T22:19:19.170 に答える