Question

PHPMailer() isn't working - help?

Posted January 12, 2015 15.8k views

I am trying to send outgoing emails from my PHP app. Here is the error I get:

“Fatal error: Class ‘PHPMailer’ not found in /usr/share/nginx/templates/webapp.php”

And here is my PHP code for sending the mail, with the require commented out:

//require ( 'class.phpmailer.php’);
$mail = new PHPMailer();

$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = “mail.yourdomain.com”; // SMTP server
$mail->SMTPDebug = 0; // enables SMTP debug information (for testing)
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = “tls”; // sets the prefix to the servier
$mail->Host = “smtp.gmail.com”; // sets GMAIL as the SMTP server
$mail->Port = 587; // set the SMTP port for the GMAIL server
<etc…>
$mail -> isHTML(true); // ALLOWS HTML EMAIL FORMATTING
$mail-> Subject = $emailsubject ;
$mail -> Body = $emailbody ;
if ($mail->Send() == false )
{
die($mail->ErrInfo) ;
}

When I include the 'require’ statement, I get the following error:

Warning: require(class.phpmailer.php): failed to open stream: No such file or directory in /usr/share/nginx/templates/webapp.php

Help? Thanks!!

2 comments
  • Your code is showing your include of class.phpmailer.php as commented out. Since the file with the class is not being loaded the script is not able to use the functions provided in that class.

  • Yes – as I mentioned after the code, I get a different error when I include that line. Any ideas?

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
3 answers

Ok, when you uncomment the require function it looks for the file class.phpmailer.php so you either need to put that file in the same directory as webapp.php or you need to specify where the php script is. You can modify your require function to point to the script so it would look somethikng like this

require ('path/to/file/class.phpmailer.php');

Hope this helps.

Good Luck!

try with the latest PHPMailer example in here >> https://github.com/PHPMailer/PHPMailer

and you can check whether MTA is working on your machine(linux) by sending a test email by following command

echo "this is email body"|mail -s "This is email subject"  youremail@emailhost.com
  • I tried that in putty.exe and it worked for about 5 minutes and then the prompt came back up again. I tried sending to my gmail account. However, I didn’t receive any email (not even in my Spam).

    Thanks for commenting

  • Actually, the emails have come through now! (Tho there went to Spam). I am still working on getting regular PHPMailer to work

  • I am getting a 504 Gateway Timeout whenever I try to send with PHPMailer

Submit an Answer