Home > Enterprise >  Why my php mailer doesn't work on bamboozle but it works on hostinger?
Why my php mailer doesn't work on bamboozle but it works on hostinger?

Time:05-22

Today I spent hours trying to get my office 365 mail to work on my php mailer using smtp tls until it finally worked on my hostinger but not on bamboozle, and this is what I got:

Message could not be sent.Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

I'm using the following php mailer. Please keep in mind that I installed the php mailer via visual studio terminal and it worked on hostinger, so the same code in the same folder isn't working on bamboozle.

<?php
//Import PHPMailer classes into the global namespace
//These must be at the top of your script, not inside a function
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

//Load Composer's autoloader
require 'vendor/autoload.php';

//Create an instance; passing `true` enables exceptions
$mail = new PHPMailer(true);

try {
//Server settings
$mail->SMTPDebug = SMTP::DEBUG_SERVER;                      //Enable verbose debug output
$mail->isSMTP();                                            //Send using SMTP
$mail->Host       = 'smtp.example.com';                     //Set the SMTP server to send 
 through
$mail->SMTPAuth   = true;                                   //Enable SMTP authentication
$mail->Username   = '[email protected]';                     //SMTP username
$mail->Password   = 'secret';                               //SMTP password
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;            //Enable implicit TLS encryption
$mail->Port       = 465;                                    //TCP port to connect to; use 587 
if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS`

//Recipients
$mail->setFrom('[email protected]', 'Mailer');
$mail->addAddress('[email protected]', 'Joe User');     //Add a recipient
$mail->addAddress('[email protected]');               //Name is optional
$mail->addReplyTo('[email protected]', 'Information');
$mail->addCC('[email protected]');
$mail->addBCC('[email protected]');

//Attachments
$mail->addAttachment('/var/tmp/file.tar.gz');         //Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    //Optional name

//Content
$mail->isHTML(true);                                  //Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}

note that i did remove the $mail->isSMTP(); and still getting same error :/

CodePudding user response:

I had this problem before while building a contact form.

It was working good on my machine, but when I hosted the app on 000webhost, the problem began to occur again.

The solution was:

  • Set STMPSecure to tls.
  • Change the port to 587.
$mail->SMTPSecure = 'tls'; 
$mail->Port       = '587';

This was my working code that I mentioned:

// Initialize Object From PhpMailer Library.
$mail = new PHPMailer();


//Server settings
$mail->SMTPDebug = 0;                                       //Disable Debugging Output
$mail->isSMTP();                                            //Send using SMTP
$mail->Host       = 'smtp.gmail.com';                       //Set the SMTP server to send through
$mail->SMTPAuth   = true;                                   //Enable SMTP authentication
$mail->Username   = $target;                                //SMTP username
$mail->Password   = $pass;                                  //SMTP Password
$mail->SMTPSecure = 'tls';
$mail->Port = 587;

// Content Settings
$mail->isHTML(true);
$mail->CharSet = "UTF-8";

Hope that helps you fixing your problem as well 3>

  • Related