メール環境設定でつまずいた

メールの環境設定 – ララ帳 を進めて、



.envファイルを



MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=お好きなメールアドレス
MAIL_FROM_NAME=お好きな名前
MAIL_USERNAME=お好きなGmailアドレス
MAIL_PASSWORD=パスワード
MAIL_PRETEND=false


に書き換えます。



次にconfig/mail.phpを下記のように書き換えます。

<?php

return [
    // Mail Driver
    'driver' => env('MAIL_DRIVER', 'smtp'),

    // SMTP Host Address
    'host' => env('MAIL_HOST', 'smtp.mailgun.org'),

    // SMTP Host Port
    'port' => env('MAIL_PORT', 587),

    // Global "From" Address
    'from' => [
        'address' => env('MAIL_FROM_ADDRESS', null),
        'name' => env('MAIL_FROM_NAME', null)
    ],

    // E-Mail Encryption Protocol
    'encryption' => env('MAIL_ENCRYPTION', null),

    // SMTP Server Username
    'username' => env('MAIL_USERNAME', null),

    // SMTP Server Password
    'password' => env('MAIL_PASSWORD', null),

    // Sendmail System Path
    'sendmail' => '/usr/sbin/sendmail -bs',

    // Mail "Pretend"
    'pretend' => env('MAIL_PRETEND', false),
];



メールが送れるか確認するために、以下のコマンドを打ちます。

$ php artisan tinker
>>> Mail::raw('Test Mail', function($message) { $message->to('送り先のメールアドレス')->subject('test'); });



そしたらエラーが出てきてしまいました。

Swift_TransportException with message 'Expected response code 250 but got code "535", with message "535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8  https://support.google.com/mail/answer/14257 vu5sm6501754pab.43 - gsmtp"'




解決方法

Gmailがログイン試行をブロックしているようです。
このブロックを解除します。


  1. Googleへログイン

  2. 右上にある「Googleアプリ」一覧ボタン→「アカウント」→「ログインとセキュリティ」

  3. 一番下にある「安全性の低いアプリの許可」を有効にする


これで送れるはず!


いったんcontrol + C で一回tinkerから出ます。
そしてもう一度、

$ php artisan tinker
>>> Mail::raw('Test Mail', function($message) { $message->to('送り先のメールアドレス')->subject('test'); });



=> 1

1が出てきたら成功!




参考:Laravel5でパスワードの変更とメールの送信をやったったw - 魔法使いの卵