Good day!
Im trying to make my phpmailer work in my shared hosting (freehostia.com)
and I always get this error. The username and password of my gmail is correct, and the rest of the settings is like this:
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Host = 'tls://smtp.gmail.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = '[email protected]'; // SMTP username
$mail->Password = 'mypassword'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
$mail->setFrom('[email protected]', 'ASAPHOT Administrator'); // Add a recipient
$mail->addAddress('[email protected]'); // Name is optional
$mail->addReplyTo('[email protected]', 'ASAPHOT Administrator');
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'it works';
$mail->Body = 'it works';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
if (!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
openssl is uncommented in the php.ini
also. Am I missing something here? Thank you.
Complete error message:
Connection: opening to smtp.gmail.com:587, timeout=300, options=array ()
SMTP ERROR: Failed to connect to server: Permission denied (13)
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
Message could not be sent.Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
Let's get to the answer first of all! Try with the following command:
$ getsebool httpd_can_sendmail
if it shows: httpd_can_sendmail --> off
switch it on with this:
$ sudo setsebool -P httpd_can_sendmail 1
then try sending the email again.
This solution comes from this great page.
As it was pointed out from this article, you may also need to try sudo setsebool -P httpd_can_network_connect 1
. While for my CentOS 7 vm hosted by DigitalOcean, it's not necessary.
The problem I met was failing to send out emails from a Drupal website, with the SMTP Authentication Support module, which relies on PHPMailer underneath. And the SMTP server used was Google.
BTW, I had suspected it was OpenSSL certificate problem and did some test but no luck. So by setting the $SMTPDebug
level to 2 from the PHPMailer source code, I was able to capture the "Permission denied (13)" error message.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With