使用PHP邮件的效果()

2022-05-27 00:00:00 sendmail php

我有一个项目,在这个项目中,我使用PHP内置的mail()函数发送电子邮件,一次只发送一封电子邮件,其中包含少量的HTML和非常有限的CSS(两个表格和一些用于样式设置的头上的CSS),但服务器的执行速度似乎非常慢(以至于管理员发送电子邮件的页面经常超时)

所以我的问题是: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' . "
";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "
";


    // Additional headers
    $headers .= 'From: admin<admin@admin.com>' . "
"; // might need to get rid of this soon

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

解决方案

mail()函数通常很快。我过去曾将其用于海量电子邮件系统,即每秒处理数百封电子邮件。

我建议检查您的系统如何配置为发送电子邮件。mail()通常使用系统的Sendmail安装(或后缀)。您应该考虑检查日志,看看那里是否有问题。

相关文章