2012-01-30 53 views
0

我有一個項目,通過使用PHP的內置郵件()函數發送郵件,我只用一小段HTML和一個非常有限的CSS發送一封郵件(兩張桌子和一個小小的CSS頭部造型),但服務器似乎做得很慢(管理員經常發送電子郵件的頁面超時)使用PHP郵件的效果()

所以我的問題是這樣的; mail()會在服務器上施加很高的工作量(不確定這是否是正確的用語),還是僅僅是我使用的服務器是垃圾?

是否值得我尋找像這樣的事情http://pear.php.net/package/Mail項目?

編輯:

這裏是有問題的代碼:

$query = "SELECT email FROM $a_table WHERE id='$Id'"; 
    $result = mysql_query($query) or die("Query failed: ".mysql_error()); 

    $mail_to = mysql_fetch_row($result); 
    $mail_to = $mail_to[0]; 

    // multiple recipients 
    $to = $mail_to; 
    // subject 
    $subject = 'notification'; 

    // message 
    $message = '<html> 
    <head> 
     <title>title goes here</title> 
     <style type="text/css"> 
     table { border: 1px solid #000;} 
     table tr th { background-color: #d8d8d8; border-bottom: 1px solid #000} 
     table tr th, table tr td { padding: 4px; text-align: center; } 
     </style> 
    </head> 
    <body> 
      <h1>header goes here</h1> 
      <table cellspacing="0"> 
      <tr> 
       <th>th1</th><td>'.$var.'</td> 
      </tr> 
      <tr> 
       <th>th2</th><td>'.$var2.'</td> 
      </tr> 
      <tr> 
       <th>th3</th><td>'.$var3.'</td> 
      </tr> 
      </table> 

      <p>&nbsp;</p> 

      <table cellspacing="0"> 
      <tr> 
       <th colspan="13">Key</th> 
      </tr> 
      <tr> 
       <th>G</th> 
       <th>I</th> 
       <th>L</th> 
       <th>M</th> 
       <th>N</th> 
       <th>O</th> 
       <th>Q</th> 
       <th>R</th> 
       <th>S</th> 
       <th>V</th> 
       <th>W</th> 
       <th>C</th> 
       <th>?</th> 
      </tr> 
      <tr> 
       <td>G</td> 
       <td>I</td> 
       <td>L</td> 
       <td>M</td> 
       <td>U</td> 
       <td>O</td> 
       <td>Q</td> 
       <td>R</td> 
       <td>S</td> 
       <td>V</td> 
       <td>W</td> 
       <td>C</td> 
       <td>R</td> 
      </tr> 
     </table> 
    </body> 
    </html> 


    // To send HTML mail, the Content-type header must be set 
    $headers = 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 


    // Additional headers 
    $headers .= 'From: admin<[email protected]>' . "\r\n"; // might need to get rid of this soon 

    // Mail it 
    mail($to, $subject, $message, $headers); 
    } 
+2

你能發表一些代碼嗎?郵件()超時一個頁面並不常見,它可能是別的東西 – Swadq 2012-01-30 12:00:38

+0

對於像這樣的任何東西,總是值得使用別人經過良好測試的工作。我使用[SwiftMailer](http://swiftmailer.org/),我看到很多人推薦[PHPMailer](http://phpmailer.worxware.com/),我見過幾個人濫用PEAR :: Mail,雖然我沒有足夠的評論。發送電子郵件應該需要幾秒鐘的時間(可能少於一秒),所以如果您的請求超時,其他事情正在進行。即使是設置不良的服務器在系統資源方面也不應該存在任何問題,這可能是網絡問題,或者與郵件完全無關。 – DaveRandom 2012-01-30 12:02:08

+0

什麼是PHP梅勒:http://phpmailer.worxware.com – 2012-01-30 12:03:31

回答

1

mail()功能通常是非常快的。過去我使用過大量電子郵件系統,每秒處理數百封電子郵件。

我建議檢查你的系統配置如何發送電子郵件。 mail()通常使用您的系統的sendmail安裝(或後綴)。你應該考慮檢查日誌,看看是否有問題。