Search code examples
phpphpmailer

PHPMailer- Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting?


I'm trying to use the phpmailer in my project, but the SMTP settings for gmail doesn't seem to be right. I referred a few questions asked here before, but none of the solutions seem to work for me.

<?php
    require 'PHPMailer-master/PHPMailerAutoload.php';
    $mail = new PHPMailer;
    $mail->IsSMTP();                                
    $mail->Host = 'smtp.gmail.com';                   
    $mail->Port = 587;                          
    $mail->SMTPSecure = 'tls';
    $mail->SMTPAuth = true;                       
    $mail->Username = '';  //gmail address                
    $mail->Password = ''; // gmail password
    $mail->From = '[email protected]';
    $mail->FromName = 'John Doe';
    $mail->AddAddress('[email protected]', 'Nick');  // Add a recipient
    $mail->IsHTML(true);                             // Set email format to HTML
    $mail->Subject = 'subject';
    $mail->Body    = 'message body';
    $mail->AltBody = 'This is a plain-text message body';
    $mail->addAttachment('images/apache_pb.png');
    if (!$mail->send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
        echo "Message sent!";
    }
?>

Solution

  • You must to have installed php_openssl.dll, if you use wampserver it's pretty easy, search and apply the extension for PHP.

    In the example change this:

       //Set the hostname of the mail server
        $mail->Host = 'smtp.gmail.com';
    
        //Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission 465 ssl
        $mail->Port = 465;
    
        //Set the encryption system to use - ssl (deprecated) or tls
        $mail->SMTPSecure = 'ssl';
    

    and then you recived an email from gmail talking about to enable the option to Less Safe Access Applications here https://www.google.com/settings/security/lesssecureapps