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
here is link https://myaccount.google.com/lesssecureapps
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