邮件功能什么都不发送

时间:2014-10-08 20:52:39

标签: php html email

以下代码负责使用Mail()函数发送邮件。我面临的问题是收到电子邮件时,没有任何内容(换句话说,电子邮件中没有显示数据)。我测试了所有功能并且它们正常工作。

<style>
#ajax_form {width:410px;font-family:verdana,arial;font-size:12px}
#ajax_form td{font-family:verdana,arial;font-size:12px}
#ajax_form_header {font-family:verdana,arial;font-size:1.3em;font-weight:bold;text-align:center}
#returned_value{font-family:verdana,arial;text-align:center;font-size:12px;color:#000000}
#go {border:1px solid #CCCCCC;background:#FFF}
</style>
<script type="text/javascript" src="cform.js"></script>

<div id="ajax_form">
<form>
<div id="ajax_form_header">Contact Us Form</div>
<br />
<table width="350" border="0" align="center" cellpadding="4" cellspacing="0">
  <tr> 
    <td><label>Your Name:</label></td>
    <td><input type="text" id="name" style="width:100%" /></td>
  </tr>
  <tr> 
    <td><label>Your Email:</label></td>
    <td><input type="text" id="email" style="width:100%" /></td>
  </tr>
  <tr> 
    <td><label>Your Subject:</label></td>
    <td><input type="text" id="subject" style="width:100%" /></td>
  </tr>
  <tr> 
    <td colspan="2">
        <label>Your Message:</label><br /><br />
        <textarea name="body" style="width:100%;height:160px" id="body"></textarea>
    </td>
  </tr>
  <tr align="center"> 
    <td colspan="2"><input type="button" value="Submit" id="submit" onClick="return check_values();"></td>
  </tr>
</table>
</form>
  <br />
  <div align="center"><!-- leave this link please --><a href="http://www.freecontactform.com/ajax_form.php">Ajax Contact Form</a></div><br /><br />
    <div id="confirmation" style="display:none" align="center"></div>
</div>

cform.js代码:

var http = createRequestObject();
var areal = Math.random() + "";
var real = areal.substring(2,6);

function createRequestObject() {
    var xmlhttp;
    try { xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); }
  catch(e) {
    try { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
    catch(f) { xmlhttp=null; }
  }
  if(!xmlhttp&&typeof XMLHttpRequest!="undefined") {
    xmlhttp=new XMLHttpRequest();
  }
    return  xmlhttp;
}

function sendRequest() {
    var rnd = Math.random();
    var name = escape(document.getElementById("name").value);
    var email = escape(document.getElementById("email").value);
    var subject = escape(document.getElementById("subject").value);
    var body = escape(document.getElementById("body").value);

    try{
    http.open('POST',  'pform.php');
    http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    http.onreadystatechange = handleResponse;
        http.send('name='+name+'&email='+email+'&subject='+subject+'&body='+body+'&rnd='+rnd);
    }
    catch(e){}
    finally{}
}

function check_values() {
    var valid = '';

    var name = document.getElementById("name").value;
    var email = document.getElementById("email").value;
    var subject = document.getElementById("subject").value;
    var body = document.getElementById("body").value;
    if(trim(name) == "" ||
        trim(email) == "" ||
        trim(subject) == "" ||
        trim(body) == "") {
            alert("Please complete all fields");
    } else {
        if(isEmail(email)) {
            document.getElementById("submit").disabled=true;
            document.getElementById("submit").value='Please Wait..';
            sendRequest();
        } else {
            alert("Email appears to be invalid\nPlease check and try again");
            document.getElementById("email").focus();
            document.getElementById("email").select();
        }
    }
}

function handleResponse() {
    try{
    if((http.readyState == 4)&&(http.status == 200)){
        var response = http.responseText;
      document.getElementById("confirmation").innerHTML = response;
      document.getElementById("confirmation").style.display ="";
        }
  }
    catch(e){}
    finally{}
}

function isUndefined(a) {
   return typeof a == 'undefined';
}

function trim(a) {
    return a.replace(/^s*(S*(s+S+)*)s*$/, "$1");
}

function isEmail(a) {
   return (a.indexOf(".") > 0) && (a.indexOf("@") > 0);
}

pform.php文件:

include 'cform_config.php';

if(!isset($rnd) || !isset($name) || !isset($email) || !isset($subject) || !isset($body)) {
    echo $error_message;
    die();
}

    $email_from = $email;
    $email_subject = "Contact Form: ".stripslashes($subject);
    $email_message = "Please find below a message submitted by '".stripslashes($name);
    $email_message .="' on ".date("d/m/Y")." at ".date("H:i")."\n\n";
    $email_message .= stripslashes($body);

    $headers = 'From: '.$email_from."\r\n" .
   'Reply-To: '.$email_from."\r\n" .
   'X-Mailer: PHP/' . phpversion();

    mail($email_it_to, $email_subject, $email_message, $headers);

    echo "<b>$confirmation</b>";
    die();

cform_config.php文件:

  $page_title = "Contact Us Form";
  $email_it_to = "your_own_email_address@some_domain.com";
  $error_message = "Please complete the form first";
  $confirmation = "Thank you, your message has been successfully sent.";

我使用check_values()函数跟踪了sendRequest()函数后发现没有错误

2 个答案:

答案 0 :(得分:3)

$email_message .= stripslashes($body);应该是 $email_message .= stripslashes($email_message );$body不存在。

(我不知道您为何在代码中使用stripslashes()。这不是必需的。)

答案 1 :(得分:0)

正如@Dagon所说,问题在于$_POST['email']。因此,我必须在pform.php文件的开头添加此部分。