联系表格不发送到电子邮件cakephp

时间:2013-11-18 03:22:52

标签: php forms email cakephp-2.0

我是php的新手..我想将联系表单发送到我的Gmail帐户.. 我点击提交按钮时一切都很顺利,但我的问题是这个表格没有给我发电子邮件..

这是我的HTML代码

    <form action="kontact-sent" onSubmit="return validate_form(this)" method="post">
    <table width="415" border="0" cellspacing="1" cellpadding="5" class="t1">
    <tr>
      <td align="left" valign="top" bgcolor="#efefef">First name:<br /><input name="FirstName" type="text" id="FirstName" style="width:300px;" /></td>
    </tr>
    <tr>
      <td align="left" valign="top" bgcolor="#efefef">Email address<br /><input type="text" name="EmailAddress" id="EmailAddress" style="width:300px;" />
      <input name="Email_Confirmation" class="Email_Confirmation2"/></td>
    </tr>
    <tr>
      <td align="left" valign="top" bgcolor="#efefef">Message<br /><textarea name="Inquiry" id="Inquiry" style="width:300px; height:100px;"></textarea></td>
    </tr>
    <tr>
      <td align="left" valign="top" bgcolor="#efefef"><input type="submit" value="Submit"></td>
    </tr>
  </table>
</form>

    function validate_EmailAddress(field,alerttxt){
    with (field)


    {

apos=value.indexOf("@");
  dotpos=value.lastIndexOf(".");
  if (apos<1||dotpos-apos<2)
    {alert(alerttxt);return false;}
  else {return true;}


  }
}



function validate_required(field,alerttxt)
{

    with (field)
  {
  if (value==null||value=="")
    {
    alert(alerttxt);return false;
    }
  else
    {
    return true;
    }
  }
}

function validate_form(thisform)
{
with (thisform)
  {

  if (validate_required(FirstName,"Please enter your First Name.")==false)
  {FirstName.focus();return false;}

  if (validate_EmailAddress(EmailAddress,"Please enter a valid Email Address.")==false)
  {EmailAddress.focus();return false;}

  if (validate_Inquiry(Inquiry,"Please enter your Inquiry.")==false)
  {Inquiry.focus();return false;}

  }
}

这是我的.php

<?php

// if the Email_Confirmation field is empty
if(isset($_POST['Email_Confirmation']) && $_POST['Email_Confirmation'] == ''){

    // put your email address here scott.langley.ngfa@statefarm.com, slangleys@yahoo.com
    $youremail = 'afiqrashid91@gmail.com';

    // prepare a "pretty" version of the message
    $body .= "Thank You for contacting us! We will get back with you soon.";
    $body .= "\r\n";
    $body .= "\r\n";
    foreach ($_POST as $Field=>$Value) { 
    $body .= "$Field: $Value\r\n"; 
    $body .= "\r\n";
    }

    $CCUser = $_POST['EmailAddress'];

    // Use the submitters email if they supplied one
    // (and it isn't trying to hack your form).
    // Otherwise send from your email address.
    if( $_POST['EmailAddress'] && !preg_match( "/[\r\n]/", $_POST['EmailAddress']) ) {
      $headers = "From: $_POST[EmailAddress]";
    } else {
      $headers = "From: $youremail";
    }

    // finally, send the message
    mail($youremail, 'Form request', $body, $headers, $CCUser );

}

// otherwise, let the spammer think that they got their message through

?>

Thank You for contacting us! We will get back with you soon.

我希望任何人都可以帮助我......提前感谢..

1 个答案:

答案 0 :(得分:0)

$headers = "From: $_POST[EmailAddress]";

应该是:

$headers = "From: $_POST['EmailAddress']";

此外,电子邮件每行不得超过70个字符。你想通过添加:

来解决这个问题
$body = wordwrap($body, 70);