2012-03-05 108 views
0

可能重复:
PHP Mail stops working without me editing the codePHP邮件停止工作

我有一个客户邮件功能一会儿一个问题。事情是,我用来接收邮件的邮件不时收到邮件。我注意到这一点,因为当我从我的客户邮件([email protected])更改为我自己的([email protected])时,它开始正常工作。此外,“成功功能”给我的信息“邮件没有发送。”当我使用我的客户邮件([email protected])。所以这个问题似乎在某种程度上被放置在mailadress中,有时候不接受邮件。这种情况每天都会发生几次,我所能做的就是等待它再次运行。我已经发布了下面的代码。

<?php 

if(isset($_POST['submit'])){ 

$mottagare = '[email protected]'; 
$titel = 'Meddelande'; 

$namn = strip_tags($_POST['namn']); 
$foretag = strip_tags($_POST['foretag']); 
$adress = strip_tags($_POST['adress']); 
$postnr = strip_tags($_POST['postnr']); 
$ort = strip_tags($_POST['ort']); 
$telefon = strip_tags($_POST['telefon']); 
$epost = strip_tags($_POST['epost']); 
$meddelande = strip_tags($_POST['meddelande']); 

$meddelande=nl2br($meddelande); 

$body = 
" 
Namn: <b>". $namn ."</b><br /> 
Företag: <b>". $foretag ."</b><br /> 
Adress: <b>". $adress ."</b><br /> 
Postnr: <b>". $postnr ."</b><br /> 
Ort: <b>". $ort ."</b><br /> 
Telefon: <b>". $telefon ."</b><br /> 
E-post: <b>". $epost ."</b><br /><br /> 
Meddelande: <b><br />". $meddelande 
; 

$headers = 'From: '. $namn .' <[email protected]>' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; 
$headers .= 'X-Mailer: PHP/' . phpversion(); 

$success = mail($mottagare, $titel, $body, $headers); 

} 

?> 

      <?php 
       if(!($success)){ 
        echo "<p class=\"field_error\">The mail was not sent.</p>"; 
       } 
      ?> 

      <?php 
       if($success){ 
        echo "<p class=\"p_success\">Great! The mail was sent.</p>"; 
       } 
      ?> 

    <form method="post" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>"> 

    <p> 
     <label for="namn">Namn: *</label><br /> 
     <input type="text" name="namn" id="namn" class="text" tabindex="15" /> 
      <br /> 
     <label for="foretag">Företag:</label><br /> 
     <input type="text" name="foretag" id="foretag" class="text" tabindex="20" /> 
      <br /> 
     <label for="adress">Adress:</label><br /> 
     <input type="text" name="adress" id="adress" class="text" tabindex="30" /> 
      <br /> 
     <label for="postnr">Postnummer:</label><br /> 
     <input type="text" name="postnr" id="postnr" class="text_medium" tabindex="40" /> 
      <br /> 
     <label for="ort">Ort:</label><br /> 
     <input type="text" name="ort" id="ort" class="text" tabindex="50" /> 
      <br /> 
     <label for="telefon">Telefon: *</label><br />    
     <input type="text" name="telefon" id="telefon" class="text" tabindex="60" /> 
      <br /> 
     <label for="epost">E-post:</label><br />     
     <input type="text" name="epost" id="epost" class="text" tabindex="70" /> 
      <br /> 
     <label for="meddelande">Meddelande: *</label><br />    
     <textarea name="meddelande" id="meddelande" class="textarea" tabindex="80"></textarea> 
      <br /> 
     <input type="submit" name="submit" value="Skicka" class="submit" /> 
    </p> 

    </form> 
+0

检查$ namn的值(限制为字母,连字符和空格)。请检查您的主机,因为它们可能会过滤一些电子邮件。 – diolemo 2012-03-05 14:47:22

+0

看来你的代码工作正常,但你的邮件服务器/接收邮件服务器不是。例如http://serverfault.com/ – jeroen 2012-03-05 14:50:02

+0

您可能会得到更好的帮助谢谢您的答案!我会看看另一个论坛。我已经与我的网站主持人进行了一些对话,并且在我们发言时他正在研究它。到目前为止,我所知道的是APC缓存在服务器上启用,它使用SMTP来发送邮件。我得到了这样的建议,也许我需要使用PEARS来通过他的SMTP服务器发送邮件,但根据他的说法,我不知道。 – 2012-03-06 22:50:19

回答

0

问题已解决。已更改为新的服务器主机。没有问题了!

1

的问题很可能与$ NAMN变量,它可以得到几乎任何价值,因此既可以不是一个有效的电子邮件在所有的,或可能是已被阻止的电子邮件接受者。

首先,你应该确保$ namn是一个有效的电子邮件,但是我个人建议你为你的From使用一个单独的常量地址,最好是其中的一个域解析为你的邮件服务器的IP。

+0

感谢您的快速回答! 我做了一个测试,我改变了'。 $ namn。'只是消息 ($ headers ='From:Message <[email protected]>'。“\ r \ n”;) 但问题仍然存在。我发布的代码也是一个精简版。真正的版本有一个函数来检查必需的字段和$ namn其中之一,所以它不能为空。 “Namn”也简单地翻译成英文的“名称”,因此表格不应包含电子邮件地址。 – 2012-03-06 22:38:49

+0

我明白了。我查看了你的域名的MX记录,看起来它并不是指向与你的网站相同的域名,而是一个类似的IP--但这不足以确定它们是否连接。 基本上,如果您的Web服务器和您的邮件服务器不是同一个,并且您尝试在本地发送电子邮件,则可能无法正常工作。但是,如果您的Web服务器已经通过该邮件服务器发送,那么它将工作。 – Ynhockey 2012-03-07 10:05:20