Breaking

Sunday, December 13, 2020

Send Mail From Localhost Using Gmail and PHPMailer

 Hi Friends Today We are going to learn How to send email from localhost using Gmail and PHPMailer 


 First of all you need to activate to Gmail settings

1 )Enable IMAP

Gmail->allsettings->Forwarding and POP/IMPA->IMAP access     

   Select IMAP Access

 
 
 
 
2)Enable  Less secure app access 
 
This will open window like below screen shot Enable it, It necessary It will solved error like SMTP Error: Could not connect to SMTP host 
Now Create one folder in your www directory give it any name here i am giving name phpmail, Note :- you need to install composer in your compute. After creating folder create one file name composer.json file and open it and add {} curly braces inside composer.json file, now got to cmd go to the path of your folder  here c:/www/phpmail/
 
composer require phpmailer/phpmailer  
 
Now run above command it will download vendor folder and create composer.lock file and add some line in comoser.json file automatically, dont edit it, Now create one file mail.php and add folowing code 
 

 

<?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';

// Instantiation and 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.gmail.com';                    // Set the SMTP server to send through
    $mail->SMTPAuth   = true;                                   // Enable SMTP authentication
    $mail->Username   = 'user@example.com';                     // SMTP username
    $mail->Password   = 'secret';                               // SMTP password
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;         // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged
    $mail->Port       = 587;                                    // TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above

    //Recipients
    $mail->setFrom('from@example.com', 'Mailer');
    $mail->addAddress('joe@example.net', 'Joe User');     // Add a recipient
    $mail->addAddress('ellen@example.com');               // Name is optional
    $mail->addReplyTo('info@example.com', 'Information');
    $mail->addCC('cc@example.com');
    $mail->addBCC('bcc@example.com');

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

Now set you gmail username and password now visit that link here localhost/phpmail/mail.php, now your mail will be sent Thank you for more please visit official PHPMailer https://github.com/PHPMailer/PHPMailer

No comments:

Post a Comment

your suggestion are welcome by me