3

Email Sending failed from cpnel but it works fine in my localhost.

Here is my email configuration in .env file.

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=myemail@gmail.com
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=ssl

It works fine in localhost but not working in cpanel. In cpanel it shows

Connection could not be established with host smtp.gmail.com [Connection refused #111]

How do i solve this?

Amanullah Aman
  • 633
  • 1
  • 12
  • 29

6 Answers6

17

Problem Solved. I made the change two things here MAIL_DRIVER and MAIL_PORT.

MAIL_DRIVER=sendmail
MAIL_PORT=587

So, my full code is:

MAIL_DRIVER=sendmail
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=myemail@gmail.com
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=ssl

It works fine

Amanullah Aman
  • 633
  • 1
  • 12
  • 29
1

I know this question has been answered but I have an alternative solution that matches the original description and might help someone. You did not answer Loek's question about whether you run cPanel or not. We run cPanel with lfd/csf firewall, and it has TCP_OUT configuration that lists what outbound ports may be connected to. Port 465 (tls) was not in that list, so we got 'Connection Refused' reports, even trying a low level telnet test on the command line of our VPS server:

$ telnet smtp.gmail.com 465
Trying 74.125.140.109...
telnet: connect to address 74.125.140.109: Connection refused
Trying 74.125.140.108...
telnet: connect to address 74.125.140.108: Connection refused
Trying 2a00:1450:400c:c08::6d...
telnet: connect to address 2a00:1450:400c:c08::6d: Connection refused

The same telnet test worked fine from my local machine.

After adding 465 to the TCP_OUT list:

  • Load WHM control panel
  • go to ConfigServer Security & Firewall
  • go to Firewall Configuration
  • find TCP_OUT and include 465 (or whatever port you are trying to connect to) to the list
  • click Change at the bottom of the page, then Restart lfd/csf.

Telnet now succeeds, as does smtpauth mail sending via PHPMailer:

$ telnet smtp.gmail.com 465
Trying 74.125.140.109...
Connected to smtp.gmail.com.
Escape character is '^]'.

(this indicates the socket connection was established.. you probably don't want to actually talk SMTP to Google so hit ctrl-] and type quit and hit enter to close the connection)

Of course this isn't cPanel specific, you may be running another firewall manager that is not allowing outbound connections on the port you're trying to connect to.

Neek
  • 7,181
  • 3
  • 37
  • 47
1

After couple of days research. I was having issue of Connection could not be established with host smtp.gmail.com [Connection refused ] because of my godaddy server

As GoDaddy blocks SMTP communication over ports 465 and 587 and possibly 25 originating from your site. They will allow mail flow only through their own SMTP servers.

That was issue in my case. hope it helps someone

For reference check this: https://pk.godaddy.com/community/Using-WordPress/Connection-Refused-for-GMail-SMTP/td-p/33107

zafar Khan
  • 21
  • 1
0

I did face this issue before, I did allow less secure apps from google account manager. And my problem was solved.

It seems like that you too need authorization for extension application in order to use gmail.

You can follow given below steps...

Sign-in into your gmail account.

Access this link to change settings.

Then you have to turn on Allow less secure apps.

After that try again to send email through you host.

  • `Allow less secure apps` already turn on and email sending works from my localhost and my personal cpnel server. But when i upload my project in client's server, then it doesn't work. – Amanullah Aman Aug 30 '18 at 09:12
0

I made the nexts steps:

  • Enter to cPanel of GoDaddy
  • Go to the option > Email Accounts
  • Clic in the option > + Create and create a email.

and after change

I resolve this problem by changing the file .env

MAIL_MAILER=smtp
MAIL_HOST=localhost
MAIL_PORT=25
MAIL_USERNAME=null
MAIL_PASSWORD=
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=emailcreated@email.com
MAIL_FROM_NAME="NAME_APP"

I hope that help !!

Santiago Vasquez
  • 149
  • 1
  • 10
0

I solved this problem after changing this one line MAIL_ENCRYPTION=ssl to null in .env file

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=myemail@gmail.com
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=null

If it also has no effect try to switch between the mail port

MAIL_PORT=587

After that, clear the config cache with:

php artisan optimize:clear
kaamrul
  • 13
  • 6