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