有一些问题使用PHP发送邮件

时间:2013-12-15 13:21:43

标签: php html email

我正在创建我的网站。我给了用户发送邮件给我的选项。我使用PHP发送邮件。我的代码:

HTML:

<form action="mailer.php" method="POST" >

 <input name="name" type="text"  placeholder="Name" required="required">
 <input name="phone_number" type="text"  placeholder="Phone No." required="required">
 <input name="email" type="email"  placeholder="E-Mail" required="required">
 <input type="submit" name="submit" value="Send"  >
</form>

Mailer.php:

<?php
if (isset($_REQUEST['email']))
  {
      $email = $_REQUEST['email'] ;
      $name = $_REQUEST['name'] ;
      $phone=$_REQUEST['phone'] ;         
      mail("priya@gmail.com", $name,
      $phone,   "From:" . $email);
      echo "Thank you for using our mail form";
      }
  }
?>

此代码工作正常。当我尝试添加更多参数时,它不发送邮件并给出警告。我尝试了更多参数:

      $email = $_REQUEST['email'] ;
      $name = $_REQUEST['name'] ;
      $phone_number = $_REQUEST['phone_number'] ;
      $nationality=$_REQUEST['nationality'] ;
      $itinerary_no=$_REQUEST['itinerary_no'] ;
      $date=$_REQUEST['date'] ;
      mail("sunanth@fairmount.in", $name,
      $phone_number, $nationality, $itinerary_no,$date, "From:" . $email);

它会发出像这样的警告

警告:mail()[function.mail]:&#34; sendmail_from&#34;未设置在php.ini或custom&#34; From:&#34; \ PDC2 \ sites \ f \ fairmount.in \ public_html \ FM \ mailer.php中缺少标题

它也会产生错误,例如不允许超过5个参数。我不知道如何解决这个问题。总的来说我想发送10个字段的数据。

任何人都可以帮助我

2 个答案:

答案 0 :(得分:1)

您正在将额外的参数传递给函数。这不是函数的工作方式。

您需要为message参数构建一个字符串:

mail("email@blah.com", $name . " " . $phone . " " . $nationality);

,拆分参数。 。 concat的字符串。

答案 1 :(得分:1)

mail功能的签名是:

  

bool mail(字符串$ to,字符串$ subject,字符串$ message [,字符串   $ additional_headers [,string $ additional_parameters]])

mail函数中的第四个参数是additional_headers,它是一个包含额外标题信息的字符串,例如From, Cc, and Bcc)。如果您有第四个参数,则必须发送您From调用中遗漏的mail()标头,从而发送错误。

因此,更新您的mail()方法调用(使用额外的变量来显示每个参数是什么),可以获得您想要做的事情:

$to = "sunanth@fairmout.in";
$subject = "Subject line...";
$message = $name . "\r\n" . $phone_number . "\r\n" . $nationality . "\r\n" . $itinerary_no . "\r\n" . $date;
$headers = "From: $email";

mail($to, $subject, $message, $headers);
相关问题