0

我试图使用以下方法发送邮件。但是如果我使用$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';

}
}
4

2 回答 2

1

换行

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

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

其他一切似乎都很好,干杯!

于 2013-07-10T08:16:25.057 回答
0

不要直接使用 mail() ,而是从网络发送邮件的许多预制类中找到一个!

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

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

于 2013-07-10T09:04:01.923 回答