我尝试使用以下方法发送邮件。但是,如果我使用$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';
}
}
答案 0 :(得分:1)
更改行
$headers .= "From: ".$name."\r\n";
与
$headers .= "From: ".$name."<".$email.">"."\r\n";
其他一切似乎都很好,欢呼!
答案 1 :(得分:0)
不要直接使用mail(),而是从网上发送邮件发送的许多预制类之一!
当您深入研究邮件发送时,您将面临很多问题,这些问题已经在PHPMailer等邮件库中得到解决。
除此之外,您的代码是“如何构建垃圾邮件应用程序”的完美示例,因为它容易受到Mailheader-Injection攻击!