Video : PHPMailer Install with Composer and Solve SMTP Error not authenticate using Gmail PHP Mailer

PHPMailer Install with Composer and solve SMTP error: Could not authenticate

PHP developer setup PHPMailer for sending mail by PHP code. PHP mail() function also supports directly sending mail but some time Server or Localhost required an SMTP port setting so the developer is required to install or unpackage PHPMailer.

 

Watch Youtube Video Tutorial for PHPMailer

 

Install, unpackage or load PHPMailer

composer require phpmailer/phpmailer

 

Package of PHPMailer in Packagist.org

https://packagist.org/packages/phpmailer/phpmailer

 

Sample Example for PHP Mailer Setup

<?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}";
}
?>

Feature of PHPMailer

  • Send emails without local mail server
  • Send emails To, CC, BCC, and Reply-to addresses use in multiple cases
  • Send emails with attachments
  • PHPMailer can use in open source projects
  • Support UTF 8, 8 bit, base64, and other encodings
  • Auto validate emails address
  • Compatible with PHP latest versions
  • and much more.