我正在创建我的网站。我给了用户发送邮件给我的选项。我使用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个字段的数据。
任何人都可以帮助我
答案 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);