I am using PHPMailer to send the smtp emails. If I use the same setting in a WordPress site, it works fine. But my priority is to use in a custom php page. And there, it is giving the following errors
SMTP ERROR: Failed to connect to server: Connection refused (111) SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
My Code is here below
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require 'emails/PHPMailer/PHPMailerAutoload.php';
//Create a new PHPMailer instance
$mail = new PHPMailer;
//Tell PHPMailer to use SMTP
$mail->isSMTP();
//Enable SMTP debugging
// 0 = off (for production use)
// 1 = client messages
// 2 = client and server messages
$mail->SMTPDebug = 2;
//Ask for HTML-friendly debug output
$mail->Debugoutput = 'html';
//Set the hostname of the mail server
$mail->Host = "smtp.gmail.com";
//Set the SMTP port number - likely to be 25, 465 or 587
$mail->Port = 587;
//Whether to use SMTP authentication
$mail->SMTPAuth = true;
//Username to use for SMTP authentication
$mail->Username = "mzubim@gmail.com";
$mail->Password = "password";
//Set who the message is to be sent from
$mail->setFrom('mzubim@gmail.com', 'Zubair Mushtaq');
//Set an alternative reply-to address
$mail->addReplyTo('replyto@gmail.com', 'Secure Developer');
//Set who the message is to be sent to
$mail->addAddress('abulogics@gmail.com', 'Abulogicss');
//Set the subject line
$mail->Subject = 'PHPMailer SMTP test';
//Read an HTML message body from an external file, convert referenced images to embedded,
//convert HTML into a basic plain-text alternative body
$mail->msgHTML("convert HTML into a basic plain-text alternative body");
//Replace the plain text body with one created manually
$mail->AltBody = 'This is a plain-text message body';
//send the message, check for errors
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
try this its working fine
<?php
include "emails/PHPMailer/PHPMailerAutoload.php";
//Create a new PHPMailer instance
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 1;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->IsHTML(true);
//Username to use for SMTP authentication
$mail->Username = "@gmail.com";
$mail->Password = "";
//Set who the message is to be sent from
$mail->setFrom('mzubim@gmail.com', 'Zubair Mushtaq');
//Set an alternative reply-to address
$mail->addReplyTo('replyto@gmail.com', 'Secure Developer');
//Set who the message is to be sent to
$mail->addAddress('abulogics@gmail.com', 'Abulogicss');
//Set the subject line
$mail->Subject = 'PHPMailer SMTP test';
//Read an HTML message body from an external file, convert referenced images to embedded,
//convert HTML into a basic plain-text alternative body
$mail->msgHTML("convert HTML into a basic plain-text alternative body");
//Replace the plain text body with one created manually
$mail->AltBody = 'This is a plain-text message body';
//send the message, check for errors
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
-> You Can Copy And Paste this code in you php file it is working file
-> But You need go to "google->account->security->Less secure app access" is by default is on please make sure you turn off to allow sending mail.
-> this is the link https://myaccount.google.com/security it is working in Nov/2019 but currently i don't know.
-> For Documentation of Php Mailer Please visit https://github.com/PHPMailer/PHPMailer
-> You can run this code before that you need to download vendor folder this folder you can download using this command
composer require phpmailer/phpmailer
-> this command only work if you download composer
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require 'vendor/autoload.php';
$mail = new PHPMailer(true);
try {
/* Server settings */
$mail->SMTPDebug = SMTP::DEBUG_SERVER; /* Enable verbose debug output */
$mail->isSMTP(); /* Send using SMTP */
$mail->Host = 'ssl://smtp.gmail.com'; /* Set the SMTP server to send through */
$mail->SMTPAuth = true; /* Enable SMTP authentication */
$mail->Username = 'youremailaddress@gmail.com'; /* SMTP username */
$mail->Password = 'youremailaddresspassword'; /* SMTP password */
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; /* Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted */
$mail->Port = 465; /* TCP port to connect to */
/* Recipients */
$mail->setFrom('youremailaddress@gmail.com', 'Your Name');
$mail->addAddress('receiveremailaddress@gmail.com', 'Receiver Name'); /* Add a recipient */
$mail->addReplyTo('youremailaddress@gmail.com', 'Your 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}";
}
?>
-> In Your Hosting You Found SMTP Not Work Properly Then Please Check This WebPage https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
来源:https://stackoverflow.com/questions/38061041/failed-to-connect-to-server-connection-refused-111