2012-01-30 6 views
0

PHPの組み込みmail()関数を使用して電子メールを送信すると、少量のHTMLと非常に限られたCSS 2つのテーブルとスタイリングのための頭の中にCSSが少しあります)、サーバーはとてもゆっくりとしているようです(管理者が頻繁にメールを送信するページ)。PHPメールを使用した場合の影響

私の質問はこれです; mail()はサーバーに高い負荷をかけますか(それが正しいかどうかわかりません)、または私が使用しているサーバーがごみですか?

私はこの種の事のためにhttp://pear.php.net/package/Mailのようなプロジェクトを検討する価値がありますか?

EDIT:

ここでは、問題のコードです:

$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

コードを投稿できますか? mail()がページをタイムアウトさせるのは一般的ではない、それはおそらく他のものだ – Swadq

+0

このようなものについては、誰かのうまくテストされた作業を使うのが常に価値がある。私は[SwiftMailer](http://swiftmailer.org/)を使用しています。多くの人が[PHPMailer](http://phpmailer.worxware.com/)を推薦しているのを見て、私はいくつかの人がPEAR :: Mailを悪用しているのを見ました私はコメントするのに十分使用していない。電子メールを送信するには数秒(おそらく1秒未満)かかるので、リクエストがタイムアウトしている場合は、ここで何か他のことが起こっています。設定が不十分なサーバーであっても、システムリソースの面でこれに問題があってはいけません。ネットワークに問題がある可能性があります。 – DaveRandom

+0

PHPメーラーについて:http://phpmailer.worxware.com –

答えて

1

mail()機能は通常、非常に高速です。私は大量メールシステムのためにこれを過去に使ってきましたが、それは毎秒数百の電子メールを処理していました。

電子メールを送信するようにシステムが設定されているかどうかを確認することをおすすめします。 mail()は一般的にシステムのsendmailインストール(または後置)を利用します。ログに問題があるかどうかを確認することを検討する必要があります。