2015-05-20 28 views
0

我目前使用Godaddy webmail服务。基本上,这个联系表格的问题是您可以提交邮件,但不会发送。 (注意:'$ email_to'区域中的电子邮件地址不是我用来测试表单的实际电子邮件地址。)。PHP - 联系表格不工作(留言未发送)

以下是代码。

<?php 

// Set email variables 
$email_to = '[email protected]'; 
$email_subject = 'Form submission'; 

// Set required fields 
$required_fields = array('fullname','email','comment'); 

// set error messages 
$error_messages = array(
    'fullname' => 'Please enter a Name to proceed.', 
    'email' => 'Please enter a valid Email Address to continue.', 
    'comment' => 'Please enter your Message to continue.' 
); 

// Set form status 
$form_complete = FALSE; 

// configure validation array 
$validation = array(); 

// check form submittal 
if(!empty($_POST)) { 
    // Sanitise POST array 
    foreach($_POST as $key => $value) $_POST[$key] = remove_email_injection(trim($value)); 

    // Loop into required fields and make sure they match our needs 
    foreach($required_fields as $field) {  
     // the field has been submitted? 
     if(!array_key_exists($field, $_POST)) array_push($validation, $field); 

     // check there is information in the field? 
     if($_POST[$field] == '') array_push($validation, $field); 

     // validate the email address supplied 
     if($field == 'email') if(!validate_email_address($_POST[$field])) array_push($validation, $field); 
    } 

    // basic validation result 
    if(count($validation) == 0) { 
     // Prepare our content string 
     $email_content = 'New Website Comment: ' . "\n\n"; 

     // simple email content 
     foreach($_POST as $key => $value) { 
      if($key != 'submit') $email_content .= $key . ': ' . $value . "\n"; 
     } 

     // if validation passed ok then send the email 
     mail($email_to, $email_subject, $email_content); 

     // Update form switch 
     $form_complete = TRUE; 
    } 
} 

function validate_email_address($email = FALSE) { 
    return (preg_match('/^[^@\s][email protected]([-a-z0-9]+\.)+[a-z]{2,}$/i', $email))? TRUE : FALSE; 
} 

function remove_email_injection($field = FALSE) { 
    return (str_ireplace(array("\r", "\n", "%0a", "%0d", "Content-Type:", "bcc:","to:","cc:"), '', $field)); 
} 

?> 
+0

尝试打印所有变量以查找脚本结束的位置。 – panther

+0

更改email_to地址/通过error_get_last获取邮件拍摄的最后一个错误...这将使您能够跟踪确切的错误。 – DevLakshman

+0

您可以运行简单的邮件功能来检查邮件是否正常工作 - '<?php echo mail([email protected]','邮件子','邮件正文'); ?>' 并在此处粘贴输出? –

回答

0

检查您的服务器。 SMTP是否启用,如果SMTP不启用请设置SMTP。