title: Error when Sending Mail with Attachments Using PEAR
body: <p>My page continues to error out (Error 324 - Chrome) when attempting to send e-mails with attachments using PHP's PEAR Mail extension.  Although the page error's out - I do receive one of the approximately 800 e-mails.  Here's what I'm working with:</p>
  
  <pre><code>function email_statements($type) {
  switch($type) {
      // Determine the type of statement to be e-mailed
      case 'monthly':
          // Array holding all unique AP e-mail addresses
          $ap_email_addresses = array();
          include('../path/to/db/connection/params.php');
          // Grab the unique AP e-mail address set to receive statements
          $stmt = $mysqli-&gt;prepare("SELECT email FROM statements GROUP BY email ORDER BY email ASC");
          $stmt-&gt;execute();
          $stmt-&gt;bind_result($ap_email_address);
          // Add unique e-mail address to AP E-mail Addresses array
          while($row = $stmt-&gt;fetch()) $ap_email_addresses[] = $ap_email_address;
          $stmt-&gt;close();
          $mysqli-&gt;close();
          // Verify we grabbed the e-mail addresses
          if(count($ap_email_addresses) == 0) {
              // Exit and return error code if unable to grab e-mail addresses
              $return_message = 1;
              exit;
          }
          // E-mail addresses grabbed - proceed
          else {
              // PDF formatted date
              date_default_timezone_set('America/New_York');
              $formatted_date = date('m_d_Y');
              // Now we have the unique e-mail addresses - associate those with the account numbers
              include('../path/to/db/connection/params.php');
              foreach($ap_email_addresses as $email_address) {
                  $file_names = array();
                  $stmt = $mysqli-&gt;prepare("SELECT customer_number FROM statements WHERE email = ?");
                  $stmt-&gt;bind_param("s", $email_address);
                  $stmt-&gt;execute();
                  $stmt-&gt;bind_result($ap_account_number);
                  // Constructs the name of the statement (PDF) file to be sent
                  while($output = $stmt-&gt;fetch()) $file_names[] = $ap_account_number . '_' . $formatted_date . '.pdf';
                  // Send e-mails
                  include('Mail.php');
                  include('Mail/mime.php');
                  // Include SMTP authentication parameters
                  include('../path/to/email/info.php');
                  // Set the e-mail recipients
                  $recipients = 'example@example.com';
                  // Set the e-mail subject
                  $subject = 'Monthly Account Statement';
                  // Create the e-mail body
                  $html = 
                  '&lt;html&gt;
                      &lt;body&gt;
                          &lt;p&gt;Test E-mail&lt;/p&gt;
                      &lt;/body&gt;
                  &lt;/html&gt;';
                  // Construct the message headers
                  $headers = array(
                      'From'          =&gt; $from,
                      'Subject'       =&gt; $subject,
                      'Content-Type'  =&gt; 'text/html; charset=UTF-8',
                      'MIME-Version'  =&gt; '1.0'
                  );
                  $mimeparams = array();
                  $mimeparams['text_encoding'] = '8bit';
                  $mimeparams['text_charset'] = 'UTF-8'; 
                  $mimeparams['html_charset'] = 'UTF-8'; 
                  $mimeparams['head_charset'] = 'UTF-8';
                  // Create a new instance
                  $mime = new Mail_mime();
                  // Specify the e-mail body
                  $mime-&gt;setHTMLBody($html);
                  // Attach the statements (PDF)
                  foreach($file_names as $attached_file) {
                      $file = '../path/to/the/pdf/file/' . $attached_file;
                      $file_name = $attached_file;
                      $content_type = "Application/pdf";
                      $mime-&gt;addAttachment ($file, $content_type, $file_name, 1);
                  }
                  // Create the body
                  $body = $mime-&gt;get($mimeparams);
                  // Add the headers
                  $headers = $mime-&gt;headers($headers);
                  // Create SMTP connect array to be passed
                  $smtp = Mail::factory('smtp', array ('host' =&gt; $host, 'port' =&gt; $port, 'auth' =&gt; true, 'username' =&gt; $username, 'password' =&gt; $password));
                  // Send the message
                  $mail = $smtp-&gt;send($recipients, $headers, $body);
                  if(PEAR::isError($mail)) echo 'Error';
                  else echo 'Sent';
                  // Close this account and cycle through the rest
                  $stmt-&gt;close();
              }
              $mysqli-&gt;close();
          }
          break;
  }
  </code></pre>
  
  <p>}</p>
  
  <p>Now I thought maybe I wasn't giving the script enough time to execute - so I set it ridiculously high <code>set_time_limit(99999999)</code> to ensure it had plenty of time, although it normally times out within 10-15 seconds.  So basically it works like this, I have an internal DB that stores customer account numbers and e-mail addresses.  Accounts can have the same e-mail address (It's sent to their company's AP department) - aka one e-mail address receives statements for multiple branches.  From their each statement is already constructed with the format being ACCOUNTNUMBER_MM_DD_YYYY.pdf.  </p>
  
  <p>So I'm simply trying to have a short message in the body, and attach the monthly statements.  Again, not sure why it's failing, and even though the script halts, I do receive ONE of the e-mails (I'm sending them all to myself at the moment just to test).  Can anyone see where I may have an issue?</p>