2012-12-17 183 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

说了我可以在你的头文件代码中看到一个问题,将更新发布到我的答案 –