Oleg
Oleg

Reputation: 383

How to configure Laravel mail.php to use built-in mail function?

I need to send an email via the mail() PHP function. I've read somewhere that I have to change driver parameter in config/mail.php to sendmail.

By default, it looks like this:

'driver' => env('MAIL_DRIVER', 'smtp'),

Now, it looks like this:

'driver' => 'sendmail',

Also tried this:

'driver' => 'mail',

But still, the mail() function doesn't work. What do I need to change?

Upvotes: 28

Views: 62004

Answers (4)

AddWeb Solution Pvt Ltd
AddWeb Solution Pvt Ltd

Reputation: 21681

You can set your mail configuration .env file like

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD="password"
MAIL_ENCRYPTION=tls

also set configuration in config/mail.php like:

'from' => ['address' => '[email protected]', 'name' => 'Test'],

then you can clear the cache:

php artisan config:cache
php artisan cache:clear

Upvotes: -33

Max Oriola
Max Oriola

Reputation: 1374

To do the same as mail() PHP function does, in most cases you should configure Laravel in the following way:

Use sendmail, at .env:

MAIL_DRIVER=sendmail

If you are using Larvel 7 or above

MAIL_MAILER=sendmail

Laravel 7 replaced MAIL_DRIVER by MAIL_MAILER

Host, user, password, port and encryption are not needed.

At this point, you may check if it already works, but sometimes the next step is also needed.

Set a new .env option in config/mail.php:

'sendmail' => env('MAIL_SENDMAIL', '/usr/sbin/sendmail -bs')

Set the sendmail path in .env. You can check sendmail_path at phpinfo(), but it's usually this one:

MAIL_SENDMAIL='/usr/sbin/sendmail -t -i'

Upvotes: 72

Ikbel
Ikbel

Reputation: 7851

To use the email server running on localhost, your .env file should look like this (The PHP mail function doesn't need a username or a password)

MAIL_DRIVER=smtp
MAIL_HOST=localhost
MAIL_PORT=25
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=null

Then, update the configuration cache:

php artisan config:cache

Upvotes: 29

Jagdish Chaudhary
Jagdish Chaudhary

Reputation: 287

You have to set your mail Configuration in .env file. Here you have to set all your mail driver and all details. Plase see this documentation https://laravel.com/docs/5.0/mail

Upvotes: -3

Related Questions