Connection could not be established with host mailhog :stream_socket_client() - laravel

I'm getting an error in mailhog while sending an email to new user for creating password.
Error:
Connection could not be established with host mailhog :stream_socket_client(): php_network_getaddresses: getaddrinfo failed: No such host is known.
.env config:
MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="dev#example.com"
MAIL_FROM_NAME="${APP_NAME}"

Do you use sail package for laravel? If you are using laravel sail you should set:
MAIL_HOST=mailhog
Otherwise it must be:
MAIL_HOST=localhost
Also enter a value for MAIL_FROM_ADDRESS:
MAIL_FROM_ADDRESS=a#gmail.com

In recent versions of Laravel Homestead, if you take a look at the Homestead.yml file, almost at the top you can get the IP address set for the Homestead Virtual Machine.
Copy that address to your .env file and set it instead of mailhog:
MAIL_HOST=192.168.56.56 #mailhog
Then you can access Mailhog with your browser by typing
http://192.168.56.56:8025/

This problem occurs when some changes have been made to files, specifically in .env file. I was facing the same issue and solved by this solution.
Clear cache using artisan command
php artisan cache:clear
Clear config
php artisan config:clear
Restart your server
sudo service apache2 restart
More: Try clearing browsers cache & cookies.

Related

Can I connect Laravel on Heroku with Awardspace database?

I added in ENV file on Heroku informations from Awardspace, because I want to connect that database with Laravel project deployed on Heroku.
I am getting error SQLSTATE[HY000] [2002] Connection refused
you have these credentials you should put it in settings -> config vars->
DATABASE_URL
DB_CONNECTION=pgsql
DB_DATABASE
DB_HOST
DB_PASSWORD
DB_PORT
DB_USERNAME
after added these credentials with database
you should run in bash php artisan migrate
and work fine
hopefully that is help you
use this command for clear cache.
php artisan optimize:clear
php artisan optimize

Google mail of a laravel project not working in cpanel

I was using the following lines in .env file when I was on the localhost and everything was working:
MAIL_MAILER=smtp
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=465
MAIL_USERNAME=myaddress#gmail.com
MAIL_PASSWORD=mypwd
MAIL_ENCRYPTION=ssl
But the moment I hosted the laravel project through cpanel it shows the following error:
Connection could not be established with host smtp.googlemail.com :stream_socket_client(): unable to connect to ssl://smtp.googlemail.com:465 (Network is unreachable)
I then tried with the following .env file, the form sends the mail but I cant actually receive anything:
MAIL_MAILER=sendmail
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465 //tried amending it to 587
MAIL_USERNAME=myaddress#gmail.com
MAIL_PASSWORD=mypwd
MAIL_ENCRYPTION=ssl //tried amending it to tsl when I changed the port to 587 but still same issue
You can’t send mail without enabling less secure apps in google with third-party apps. So let's enable it.
Log in your Gmail account which you want to use for this
Open URL https://myaccount.google.com/lesssecureapps
If it is OFF then make it ON.
Your .env file will then look something like this
MAIL_DRIVER=smtp
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=465
MAIL_USERNAME=ENTER_YOUR_EMAIL_ADDRESS(GMAIL)
MAIL_PASSWORD=ENTER_YOUR_GMAIL_PASSWORD
MAIL_ENCRYPTION=ssl
Don't forget to run php artisan config:cache after you make changes in your .env file.

Connection could not be established with host smtp.sendgrid.net :stream_socket_client(): unable to connect to tcp://smtp.sendgrid.net:465

I am trying to send mail using sendgrid in Laravel but it is working on localserver but as i hosted it on server it is giving me following error message:
my mail settings in .env file:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=myusername
MAIL_PASSWORD=XXX
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=info#xyz.com
MAIL_FROM_NAME=xyz
For laravel >= 7
And you are getting this error :
Connection could not be established with host smtp.sendgrid.net :stream_socket_client(): unable to connect to tcp://smtp.sendgrid.net:587 (A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
Simply update your .env file
From:
MAIL_MAILER=smtp
MAIL_DRIVER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=your_sendgrid_api_key
MAIL_ENCRYPTION=tls
MAIL_FROM_NAME="Your Sender Name"
MAIL_FROM_ADDRESS=info#example.com
To:
MAIL_MAILER=sendMail
MAIL_DRIVER=sendMail
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=your_sendgrid_api_key
MAIL_ENCRYPTION=tls
MAIL_FROM_NAME="Your Sender Name"
MAIL_FROM_ADDRESS=info#example.com
Then run this command to make sure .env changes is sync with the code.
php artisan config:cache
Update your env file to:
MAIL_MAILER=sendmail
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=apiPassword
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=info#example.com
MAIL_FROM_NAME="${APP_NAME}"
Also in your Laravel project under the config folder look for
mail.php
and make changes as follows:
'default' => env('MAIL_MAILER', 'sendmail'),
N/B: SMTP works on localhost and sendmail works on live server.
If you say it works locally but not on production server, try a php artisan config:cache on your web host server. Make sure the ENV configuration is loaded properly (if your host does not support SSH connections, you need to manually update the configuration from ENV into /app/config/* files.
If the issue persists, there are only two possibilities:
Make sure your web host allows outgoing SMTP connections.
Make sure sendgrid.net did not ban your web host outgoing SMTP IP address.
I Experienced this while using a Linode server. Apparently, Some service provider like Linode blocks an SMTP port until you reach out to them via support and ask them for unblock before you can use that PORT and send Email. That was the fix for me
when I migrated to laravel 9, sending with sendgrid didn't work anymore.
The problem was because the new symfony mailer was trying to send with ssl beside tls was set in the config file.
So in the config file, I changed the port from 587 to 465 and it worked again.

Laravel SMTP mailtrap [Connection timed out #110]

I'm trying to send email with Laravel using mailtrap for testing in a local homestead server.
The firewall shows no rules blocking port 2525.
Mail driver config:
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=$USERNAME
MAIL_PASSWORD=$PASSWORD
MAIL_ENCRYPTION=null
Error returned:
Fatal error: Uncaught exception 'Swift_TransportException' with message 'Connection could not be established with host mailtrap.io [Connection timed out #110]'
Your hostname is invalid. It should be smtp.mailtrap.io. More info here: https://mailtrap.io/blog/2018-03-09-why-mailtrap-updated-its-smtp-host
P.S. Mailtrap doesn't have static IP addresses, so your way with IPv4 will work not so long amount of time.
Adding to Alexey Vasiliev answer , after you fix the hostname don't forget to clear the cache using the following commands
php artisan config:clear
php artisan cache:clear

Laravel not connecting to homestead database

I was developing a laravel application locally on Mac connecting to a mysql database. i recently found out about homestead and pulled my app over to Vagrant Homestead. however now im not able to connect to the mysql server on the homestead/box.
Error i recieve:
SQLSTATE[HY000] [1045] Access denied for user 'root'#'localhost' (using password: YES)
I did update my app's .env file
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=eHDatabase
DB_USERNAME=homestead
DB_PASSWORD=secret
I cleared my app's cache
php artisan cache:clear
I updated my /etc/hosts file
27.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
127.0.0.1 laravel.app
and i also removed the old mysql server running on port 3306 on 127.0.0.1.
but still recieve the connection error.
Any help would be great.
Both .env and /config/database.php are looking fine, so try to run this:
php artisan config:cache

Resources