我是这个社区的新成员,正如你可能猜到的,我有点麻烦!我已经为几个阶段的客户完成了一个PHP表单...意味着它将信息从表单的一个级别发布到另一个级别,直到最后一个阶段实际调用sendmail.php文件,该文件将所有收集的信息发送到一个电子邮件地址。PHP表单不会发送信息到电子邮件地址“有时”
问题是,它并不总是工作,它是疯狂的,因为我不能发现任何错误与PHP ...我们从托管公司迁移认为这可能排序是PHP设置/以前的托管公司的版本,但问题仍然存在。
请看看我的sendmail的形式:
<?php
$to = '[email protected]';
$subject = 'Enquiry from domain Website';
//assigns an email address if the user leaves email field blank
if ($_POST['email'] == '') { $_POST['email'] = '[email protected]'; }
$body = '';
$body .= 'First Name: ';
$body .= $_POST['fname']. "\n". "\n";
$body .= 'Last Name: ';
$body .= $_POST['lname']. "\n". "\n";
$body .= 'Company: ';
$body .= $_POST['company']. "\n". "\n";
$body .= 'Job Role: ';
$body .= $_POST['role']. "\n". "\n";
$body .= 'Telephone: ';
$body .= $_POST['phone']. "\n". "\n";
$body .= 'Email: ';
$body .= $_POST['email']. "\n". "\n". "\n";
$body .= 'ANSWERS TO FORM QUESTIONS:'. "\n". "\n";
$body .= 'question1?: '."\n";
$body .= $_POST['question_1']. "\n". "\n";
$body .= 'question2?: '."\n";
$body .= $_POST['question_2']. "\n". "\n";
$body .= 'question3?: '."\n";
$body .= $_POST['question_3']. "\n". "\n";
$body .= 'question4?: '."\n";
$body .= $_POST['question_4']. "\n". "\n";
$body .= 'extra info?: '."\n";
$body .= $_POST['question_5']. "\n". "\n";
$message = $body;
$headers = "From: ".$_POST['email']. "\n" .
"Reply-To: ".$_POST['email']. "\n" .
"X-Mailer: PHP/" . phpversion();
mail($to, $subject, $message, $headers);
if (mail == TRUE) {
$to = $_POST['email'];
$subject = 'Thank you for using domain.co.uk';
$body2 .= "Thank you for your enquiry, it has now been sent"."\n";
$body2 .= "We will now search and find the best low cost solution providers to assist you get your money back as quickly as possible."."\n";
$body2 .= "They will contact you (normally within 2 working hours) with a FREE risk analysis on your requirements."."\n";
$body2 .= "Thank you for using the services of domain.co.uk";
$message = $body2;
$headers = 'From: [email protected]' . "\n" .
'Reply-To: [email protected]' . "\n" .
'X-Mailer: PHP/' . phpversion();
$mail = mail($to, $subject, $message, $headers);
header('Location: http://www.domain.co.uk/mobile/thankyou-mobile.php');
}
else
{
header('Location: http://www.domain.co.uk/mobile/error-mobile.php');
}
?>
这是什么? 'if(mail == TRUE)' –
另外,我建议你不要直接在字符串中使用'$ _POST'值。有时这些值不会被发送或客户端愚弄脚本。这就是为什么你应该检查所有的步骤是否用'isset()'设置的,如果它们不是空的'empty()'。就像帕维尔评论过的那样,那是什么? – ascx
如果你这样做(邮件($ to,$ subject,$ body,$ header)),而不是if(邮件== true) – Dorvalla