## PHPMailer FAQ

- Q: I'm using the SMTP mailer and I keep on getting a timeout message well before the X seconds I set it for. What gives?
  A: PHP versions 4.0.4pl1 and earlier have a bug in which sockets timeout early. You can fix this by re-compiling PHP 4.0.4pl1 with this fix: timeoutfix.diff. Otherwise you can wait for the new PHP release.
- Q: I am concerned that using include files will take up too much processing time on my computer. How can I make it run faster?
  A: PHP by itself is very fast. Much faster than ASP or JSP running on the same type of server. This is because it has very little overhead compared to its competitors and it pre-compiles all of its code before it runs each script (in PHP4). However, all of this compiling and re-compiling can take up a lot of valuable computer resources. However, there are programs out there that compile PHP code and store it in memory (or on mmaped files) to reduce the processing immensely. Two of these: APC (Alternative PHP Cache) and Afterburner (Win32 download) are excellent free tools that do just this. If you have the money you might also try Zend Cache, it is even faster than the open source varieties. All of these tools make your scripts run faster while also reducing the load on your server. I have tried them myself and they are quite stable too.
- Q: What mailer gives me the best performance?
  A: On a single machine the sendmail (or Qmail) is fastest overall. Next fastest is mail() to give you the best performance. Both do not have the overhead of SMTP. If you have you have your mail server on a another machine then SMTP is your only option, but you do get the benefit of redundant mail servers.
  If you are running a mailing list with thousands of names, the fastest mailers in order are: SMTP, sendmail (or Qmail), mail().
- Q: When I try to attach a file with on my server I get a "Could not find {file} on filesystem error". Why is this?
  A: If you are using a Unix machine this is probably because the user running your web server does not have read access to the directory in question. If you are using Windows, then the problem probably is that you have used single backslashes to denote directories (\). A single backslash has a special meaning to PHP so these are not valid. Instead use double backslashes ("\\") or a single forward slash ("/").