帮助PHP邮件脚本

时间:2010-03-17 00:27:53

标签: php email

当涉及到PHP并且有一个通过电子邮件发送表单内容的脚本时,我很无能为力。麻烦的是,当我希望它还发送捕获的名称和电子邮件地址时,它只会向我发送评论。

任何人都知道如何调整此脚本来执行此操作?

提前一百万谢谢!

<?php
 error_reporting(E_NOTICE);
 function valid_email($str)
 {
  return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
 }
 if($_POST['name']!='' && $_POST['email']!='' && valid_email($_POST['email'])==TRUE && strlen($_POST['comment'])>1)
 {
  $to = "me@me.com";
  $headers =  'From: '.$_POST['email'].''. "\r\n" .
    'Reply-To: '.$_POST['email'].'' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
  $subject = "Contact Form";
  $message = htmlspecialchars($_POST['comment']);
  if(mail($to, $subject, $message, $headers))
  {
   echo 1; //SUCCESS
  }
  else {
   echo 2; //FAILURE - server failure
  }
 }
 else {
  echo 3; //FAILURE - not valid email
 }
?>

3 个答案:

答案 0 :(得分:1)

你可以做到

$extra_fields = 'Name: '.$_POST['name'].'<br>Email: '.$_POST['email'].'<br><br>Message:<br>';
$message = $extra_fields.$_POST['comment'];

不完全干净,但你明白了。只需将数据与$ message连接即可。

答案 1 :(得分:1)

更改此行:

  $message = htmlspecialchars($_POST['comment']);

  $message = htmlspecialchars($_POST['name'] .  $_POST['email'] . "\r\n" .  $_POST['comment']);

或者那种效果

答案 2 :(得分:0)

问题在于您的$message = ...行,其中仅包含$_POST['comment'])变量。您需要添加$_POST['name']$_POST['email'],如下所示:

$message = '';
$message .= htmlspecialchars($_POST['name']) . "\n";
$message .= htmlspecialchars($_POST['email']) . "\n";
$message .= htmlspecialchars($_POST['comment']) . "\n";