2012-12-17 220 views
0

我的PHP電子郵件腳本似乎並沒有發送,但我看不出爲什麼。我也明白,我的腳本存在某些安全漏洞,任何意見都非常感謝!PHP的HTML電子郵件不發送

謝謝

<?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!"; 

?> 
+0

您是否得到某種錯誤?這可以幫助我們找出問題所在。 – Stegrex

+1

使用http://swiftmailer.org/和你的問題已經消失... –

+0

@Glavić謝謝你看起來像一個很好的解決方案,任何想法如何使用它? – neeko

回答

1

您正在使用周圍$email1單引號,這是沒有必要的。刪除引號,它應該工作得很好。

像這樣

$to = $email1; 

我建議你檢查出PHPMailer類,這個類提供的功能的整個範圍,與安全一起。它非常易於使用,只需閱讀文檔即可。

UPDATE

你也沒能逃脫在某些標題末尾的迴歸和新線特殊字符。更改行的結尾看起來像這樣:

\r\n"; 
+0

非常感謝你!現在發送的電子郵件,但是,任何想法爲什麼HTML不顯示? – neeko

+0

我還沒有機會通過HTML閱讀,因爲我目前在iPad上,測試代碼稍微有些困難:-)。然而,我建議你在我的答案中查看我已經鏈接到的類,這將幫助你實現你想要達到的目標,並處理所有難題。如果代碼格式不正確,電子郵件中的HTML會導致各種問題。在關閉標籤之前添加需要的空間可能是件可悲的事情。這個課程將幫助你解決這個問題 –

+1

說了我可以在你的頭文件代碼中看到一個問題,將更新發布到我的答案 –