Send mail from local machine using laravel

Viewed 7026

I want to send mail from my local machine using laravel 5.4 in a forget password API. But I am getting Swift_TransportException

(1/1) Swift_TransportException
Expected response code 220 but got code "502", with message "502 Command not implemented
"


The .env details is

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=username@gmail.com
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=username@gmail.com
MAIL_FROM_NAME=Project.com


The code I am getting error is

$response = $this->broker()->sendResetLink(
      $request->only('email')
);


The code in config/mail.php is

return [
    'driver' => env('MAIL_DRIVER', 'smtp'),
    'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
    'port' => env('MAIL_PORT', 587),
    'from' => [
        'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
        'name' => env('MAIL_FROM_NAME', 'Example'),
    ],
    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
    'username' => env('MAIL_USERNAME'),
    'password' => env('MAIL_PASSWORD'),
    'markdown' => [
        'theme' => 'default',

        'paths' => [
            resource_path('views/vendor/mail'),
        ],
    ],
];

How can I enable mailing from my local machine? Does I have to enable port for that?

3 Answers

You can download and use fakesmtp http://nilhcem.com/FakeSMTP/ for localhost and set port :25 by default..for any framework its support for local server machines . Only you need to start whenever you want send mail and check the mails log in fakesmtp.

try this configuration in .env file, it allways works for me.

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=useraddress@gmail.com
MAIL_PASSWORD=userpassword
MAIL_ENCRYPTION=ssl

and configure your config/mail.php like so:

'markdown' => [
        'theme' => 'default',

        'paths' => [
            resource_path('views/vendor/mail'),
        ],
    ],
    'stream' => [
        'ssl' => [
            'allow_self_signed' => true,
            'verify_peer' => false,
            'verify_peer_name' => false
        ]
    ]

ps: you'll need to configure your useraddress@gmail.com account to allow less secure application to use it

Related