LoginSignup
47

More than 5 years have passed since last update.

Laravel5.1でgmail経由でメール送信

Last updated at Posted at 2015-08-14

やりたいこと

Laravelでメール送信する際のSMTPにgamilを利用したい。

やり方

アプリ固有のパスワードを取得

最近のGmailは、アプリ等でSMTPを利用する際は、「アプリ固有のパスワード」を取得する必要がある。

パスワードはGoogleで発行されるものなので、忘れたら一度消して再発行すればよい。

.envの設定

設定自体は.envに記述する。

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=xxxxxx@gmail.com
MAIL_PASSWORD=xxxxxxxxxxxxxxx
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=from@emai.com
MAIL_FROM_NAME=Hoge Foo

config/mail.php

設定の本体はconfi/mail.phpとなる。

必要な要素をきちんと記述する。
MAIL_FROM_ADDREDSSがnullになっているが、設定しないといけないようなので、env('MAIL_FROM_ADDRESS', null)が代入されるようにする。NAMEは必須ではないよう。

mail.php

<?php

return [


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


    'host' => env('MAIL_HOST', 'smtp.mailgun.org'),


    'port' => env('MAIL_PORT', 587),


    'from' => [
        //ここの設定を追加
        'address' => env('MAIL_FROM_ADDRESS', null),
        'name' => env('MAIL_FROM_NAME', null)
    ],


    'encryption' => env('MAIL_ENCRYPTION', 'tls'),


    'username' => env('MAIL_USERNAME'),


    'password' => env('MAIL_PASSWORD'),


    'sendmail' => '/usr/sbin/sendmail -bs',

];

送信テスト

thinkerで送信テストができる。

php artisan tinker
>>> Mail::raw('test mail',function($message) {$message->to('to@mai.com')->subject('test');});
=> 1

=>1が返ってくればOK。

.envをいじったら一度tinkerコンソールを抜けないと反映されない。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
47