PHPMailer FAQ
- Q: I'm having problems
getting SMTP working properly. Can you help me fix this?
A: Many of the problems in getting
SMTP working properly are fairly basic. The issue is really trying to
figure out what setting or code is wrong. To help with that, you can use
the built-in debugger. Once you have defined that you are using SMTP with
the code:
$mail->IsSMTP();
add this next command:
$mail->SMTPDebug = 2;
... this will provide you on-screen feedback about your SMTP connection
settings and return codes from the SMTP server.
- Q: I am concerned that using include files will take up too much
processing time. 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. To gain extra speed, there are programs available
that compile PHP code and store it in memory (or on mmaped files) to reduce the
processing immensely. One of these is our own QuickCache.
Another is APC
(Alternative PHP Cache). All of these tools make your
scripts run faster while also reducing the load on your server.
- 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 ("/").