I know this question has been asked a lot and I've read through most of them.
I'm getting this error when trying to use my Gmail account to send email from PHP using PHP Mailer and WAMP Server.
- It was working till yesterday without any problems (since about 3 months).
- I have not changed any code in the mailer helper function.
- php-openssl.dll is enabled in my wamp settings.
- Tried with ssl & 465, Doesn't connect.
- I have "Allow less secured apps" turned on in my google settings.
- I've tried using gethostbyname(). it doesn't work.
- It is working with my organisation's email server, which doesn't use any security.
This is my phpmailer function code. All the settings are being retrieved from the database. As it is a multi user application.
// Email Settings
$from=$details->from;
$mailer=$details->mailer;
$subject=$details->subject;
$mail = new PHPMailer(true); // Passing `true` enables exceptions
try {
//Server settings
$mail->SMTPDebug = $settings->debug; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = $settings->host; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = $settings->login; // SMTP username
$mail->Password = $pass; // SMTP password
$mail->SMTPSecure = $settings->security; // Enable TLS encryption, `ssl` also accepted
$mail->Port = $settings->port; // TCP port to connect to
//From
$mail->setFrom($from, $mailer);
//Recipients
$mail->addAddress($details->to,$details->recipientName); // Add a recipient // Name is optional
$mail->addReplyTo($from, $mailer);
foreach($quote->cc as $cc)
{
$mail->addCC($cc);
}
//Attachments
foreach($quote->attachments as $file)
{
$mail->addAttachment($file); // Add attachments // Optional name
}
//Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = $subject;
$mail->Body = $message;
$mail->AltBody = 'Non-HTML Mail Clients Not Supported, Please View This email in a browser or get a HTML friendly Email Client.';
$mail->send();
}
catch (Exception $e)
{
$return=array(1,'Error: '.$mail->ErrorInfo);
}
return $return;
}
The error That I'm getting is
2017-12-04 07:15:26 SERVER -> CLIENT: 220 smtp.gmail.com ESMTP w9sm23070345pfk.16 - gsmtp<br>
2017-12-04 07:15:26 CLIENT -> SERVER: EHLO projects<br>
2017-12-04 07:15:26 SERVER -> CLIENT: 250-smtp.gmail.com at your service, [49.213.37.11]250-SIZE 35882577250-8BITMIME250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8<br>
2017-12-04 07:15:26 CLIENT -> SERVER: STARTTLS<br>
2017-12-04 07:15:27 SERVER -> CLIENT: 220 2.0.0 Ready to start TLS<br>
SMTP Error: Could not connect to SMTP host.<br>
2017-12-04 07:15:27 CLIENT -> SERVER: QUIT<br>
2017-12-04 07:15:27 <br>
2017-12-04 07:15:27 <br>
SMTP Error: Could not connect to SMTP host.<br>
[1,"Error: SMTP Error: Could not connect to SMTP host."]
Any help is appreciated.
PS : The settings I'm using are
- Host : smtp.gmail.com.
- Username and password : I've checked and I can log into my account on gmail web.
- Security : tsl
- Port : 587.
I doubt if its my code. coz if it was my code, then It would't have worked with my organisation's email server, which is not as sophisticated as gmail.