2014-02-26 35 views
-1

我是这个社区的新成员,正如你可能猜到的,我有点麻烦!我已经为几个阶段的客户完成了一个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'); 
} 
?> 
+2

这是什么? 'if(mail == TRUE)' –

+0

另外,我建议你不要直接在字符串中使用'$ _POST'值。有时这些值不会被发送或客户端愚弄脚本。这就是为什么你应该检查所有的步骤是否用'isset()'设置的,如果它们不是空的'empty()'。就像帕维尔评论过的那样,那是什么? – ascx

+0

如果你这样做(邮件($ to,$ subject,$ body,$ header)),而不是if(邮件== true) – Dorvalla

回答

0

我有同样的问题,并没有找到一个可靠的解决方案。从那以后,我一直在使用这个插件 - >http://phpmailer.worxware.com/,我从来没有遇到过问题。

+0

嗨Severin,谢谢你,这现在完美的作品使用PHP Mailer类 – user3354949

+0

很高兴我能帮到你。标记这个答案是正确的,如果它帮助你:) – Severin

相关问题