2012-03-05 105 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