发送邮件功能无效

时间:2013-07-10 08:07:20

标签: php

我尝试使用以下方法发送邮件。但是,如果我使用$headers功能不起作用。否则它工作正常。哪里出错了?

if(isset($_REQUEST['submit']))
{

$name=$_REQUEST['name'];
$email=$_REQUEST['email'];
$phone=$_REQUEST['phn'];
$country=$_REQUEST['country'];
$company=$_REQUEST['company'];
$subject=$_REQUEST['subject'];
$enquiry=$_REQUEST['message'];

$subject = "xyz.com-".$subject;
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: ".$name."\r\n";
$headers .= "Reply-To: ".$email."\r\n";

$msg="
<table><tr><td>Name</td><td>".$name."</td></tr>
<tr><td>Email:</td><td>".$email."</td></tr>
<tr><td>Contact Number:</td><td>".$phone."</td></tr>
<tr><td>Country:</td><td>".$country."</td></tr>
<tr><td>Company:</td><td>".$company."</td></tr>
<tr><td>Message:</td><td>".$enquiry."</td></tr>
</table>";

if(mail("myName@gmail.com",$subject,$msg,$headers))
{
$msg1="Email Sent Successfully";

}
else
{
$msg1='Mail not sent. Please try again';

}
}

2 个答案:

答案 0 :(得分:1)

更改行

$headers .= "From: ".$name."\r\n";

$headers .= "From: ".$name."<".$email.">"."\r\n";  

其他一切似乎都很好,欢呼!

答案 1 :(得分:0)

不要直接使用mail(),而是从网上发送邮件发送的许多预制类之一!

当您深入研究邮件发送时,您将面临很多问题,这些问题已经在PHPMailer等邮件库中得到解决。

除此之外,您的代码是“如何构建垃圾邮件应用程序”的完美示例,因为它容易受到Mailheader-Injection攻击!