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 ("/").