电子邮件正文中的Php帖子名称

时间:2014-06-25 13:53:13

标签: php email

我是php的新手,我有一个工作联系表单,但我想将发件人姓名添加到我收到的电子邮件正文中,这是我试过的 -

 <?php 
 $to = "joedunlopburns@gmail.com"; 
 $subject = "The Lantern Contact"; 
 $name = $_REQUEST['name']; 
 $email = $_REQUEST['email']; 
 $message = "Message from $name\n$message";
 $headers = "From: $email"; 
 $sent = mail($to, $subject, $message, $headers) ; 
 ?> 

抱歉,如果我是傻瓜!

编辑表格已添加

<form id="contactform" method="POST" action="php/contact.php">
<input class="equal" type="text" name="name" autocomplete="on" placeholder="Name"><br/><br/>
<input class="equal" type="email" name="email" autocomplete="on" placeholder="Email Address"><br/><br/>
<input class="hide" type="email" name="fake">
<textarea class="equaltall" type="text" name="message" placeholder="Message"></textarea><br/><br/>
<input class="button" type="submit" value="Send">
</form>

1 个答案:

答案 0 :(得分:0)

最好使用$ _POST和$ _GET而不是$ _REQUEST,并且你使用$ _POST作为正文行,所以我假设您的数据是使用post发送的。

当您收到任何用户输入时,您一定要测试它。您可以使用filter_input来执行此操作。

 <?php
     $to = 'me@gmail.com'; 
     $subject = 'Contact'; 
     $name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING); 
     $email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL); 
     $message = filter_input(INPUT_POST, 'message', FILTER_SANITIZE_STRING); 
     $body = $name; // why not use name in the following code?
     $headers = "From: $email"; 
     $sent = mail($to, $subject, $message, $body, $headers) ; 
 ?> 

我还建议不要将给定的电子邮件地址用作发件人,因为该邮件可能被视为垃圾邮件,来自非相关的smtp服务器......