Laravel - unable to send email on production - php

I'm using ovh cloud server and laravel forge to manage my server, I don't know what happened exactly, I have websites and even wordpress installed , everything was fine and can send email from all websites, nowadays no website send email also no error in the log files, and the email function works fine but no email in inbox or even spam
I've tried changing mail to sendmail, the same issue
please advice me
MAIL_DRIVER=mail
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=465
MAIL_USERNAME=noreply#****com
MAIL_PASSWORD=*******
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=noreply#*****.com
MAIL_FROM_NAME=“****”

If your using gmail, delete and create new app password. Here is my config
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=***#gmail.com
MAIL_PASSWORD="*****"
MAIL_ENCRYPTION=tls

Related

Send Email through Proxy Laravel

I am trying to send an email to a guest in laravel.
Below is my code:
Mail::to($requestor->email)->send(new ApprovedNotification(auth()->user()->name));
The question is how can I send the email through proxy? Does it requires any server side configuration or I can just set it in laravel? The code is running fine when I am using my home network but when using my company server, the SMTP can't be sent out. ( The weird thing is the Jetstream team invitation email can be sent, but the customized emails cant)
Below is my email configuration:
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=xxxxxx#gmail.com
MAIL_PASSWORD=xxxxxxx
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=xxxxxx#gmail.com
MAIL_FROM_NAME="${APP_NAME}"
Thanks in advance!
If you are using Gmail then you must generate App password.
https://support.google.com/accounts/answer/185833/sign-in-with-app-passwords?hl=en
then your mail configuration look like this
MAIL_MAILER=smtp
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=587
MAIL_USERNAME=xxxxxxxxxx#gmail.com
MAIL_PASSWORD=xxxxxxxxxx
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=xxxxxxxxx#gmail.com
MAIL_FROM_NAME="${APP_NAME}"

How to send multiple domain email in laravel

I using laravel 7 and tried to send email using Mailtrap
and it's successfully
but actually i want to send gmail, yahoo and any other mail and multiuser
i using this setting in .env file
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=example#gmail.com //or any other emails not exactly gmail
MAIL_PASSWORD=somepassword
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=email#yahoo.com //or any other emails not exactly yahoo
MAIL_FROM_NAME="${APP_NAME}"
Here is an interesting article that describrs the solution to this problem
https://laravel-news.com/allowing-users-to-send-email-with-their-own-smtp-settings-in-laravel
Also here is a similar article from an older laravel version
multiple mail configurations

Mails are not sending from my laravel project

I am sending emails from my Laravel project. In the localhost it works perfectly but after makes the site live it gives the following error.
The connection could not be established with host smtp.googlemail.com:stream_socket_client(): Peer certificate CN=`whm001.smart1marketing.com' did not match expected CN=`smtp.googlemail.com'
I am using same google configuration settings in which I used in Laravel , I have tried clearing all caches, etc. but no solution
Following is .env file
MAIL_DRIVER=smtp
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=465
MAIL_USERNAME=mymail#gmail.com
MAIL_PASSWORD=my password
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=noreply#smart1leads.com
MAIL_FROM_NAME='LifeLoveAndOtherThings'

Laravel email configuration for live server

I have installed laravel script on web server but unable to properly configure email settings. I want to use my hosting provider email on laravel script.
The script sends email when user register or request for verification code.
Find the .env file and edit the following with your smtp information:
MAIL_DRIVER=smtp
MAIL_HOST=host
MAIL_PORT=port
MAIL_USERNAME=username
MAIL_PASSWORD=password
MAIL_ENCRYPTION=null

Error while sending email on GoDaddy Server: Laravel 5.1

I am using inbuilt template of Login System in Laravel 5.1
When I use Forgot Password on localhost, everything works. Below are my keys in .env file
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=userid
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
When I try the same thing on Godaddy server, I am facing the below error.
Swift_TransportException in StreamBuffer.php line 265: Connection
could not be established with host smtp.gmail.com [Connection refused
111]
Your env file must be like below
MAIL_DRIVER=smtp
MAIL_HOST=localhost
MAIL_PORT=465
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=ssl
In your config/mail.php, the from value should be like below...
'from' => ['address' => 'pankaj#YourDomainName.com', 'name' => 'Sender Name'],
What's your domain Name in from ? or you can say, How to create Email account in GoDaddy ?
Login in your GoDaddy Account
Go to your Hosting Account.
Click Manage
Under Email category, Please click Accounts
Create an account if there is no email account.
and that's it.
So let's say you have email address like Pankaj#yourdomainname.com
Now, put this email address in config/mail.php for from field. That's it.
This will 100% fix the issue
I had a hell of a time trying to find an answer to this so hopefully this helps someone. I was able to relay using my GoDaddy email account settings for a while but for whatever reason that stopped working. I'm now using the standard PHP Mail function to send emails and here's the .env config for that. Not sure if port or encryption are necessary but it's working so left it as is.
MAIL_DRIVER=mail
MAIL_HOST=localhost
MAIL_PORT=465
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=ssl
Looking around web, it seems when using GoDaddy you need to use their relay SMTP with Gmail credentials when you want to send an e-mail.
So in your .env file instead of:
MAIL_HOST=smtp.gmail.com
you should use
MAIL_HOST=here_godaddy_relay_server
The exact value of relay server depends on hosting you have but it will be probably relay-hosting.secureserver.net so try first with:
MAIL_HOST=relay-hosting.secureserver.net
Further details: https://www.godaddy.com/help/what-is-the-name-of-my-hosting-accounts-relay-server-953+&cd=2&hl=en&ct=clnk&gl=us
For my shared hosting at goDaddy
I could configure my .env with the values from cPanel->Email Wizard->Configure Mail Client
For Config email to your Laravel project first, create an email account in the host and check config details.
Now config you .env file example:
MAIL_DRIVER=mail
MAIL_HOST=mail.22h.in
MAIL_PORT=587
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=tls
And your config/mail.php Should be like this.
'from' => ['address' => 'demo#domain.in', 'name' => 'Order Receipt'],
Clear your project cache and config , Run these command
php artisan config:Cache
php artisan cache:Clear
One of the reasons could be wrong Mail_RRIVER etc in the .env file. Please make sure you put the right information there, e. g. for GMAIL the following input will work!
MAIL_DRIVER=smtp
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=465
MAIL_USERNAME=**<YOUR_USER_NAME>**#gmail.com
MAIL_PASSWORD=**<YOUR_PASSWORD>**
MAIL_ENCRYPTION=ssl
Update for Laravel 7 and up
MAIL_MAILER=smtp
MAIL_HOST=localhost
MAIL_PORT=25
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=null

Categories