LoginSignup
2
5

Laravel 7 (Laravel10) アプリからメールを送信する

Last updated at Posted at 2020-05-14

目的

  • Laravelアプリからのメール送信で非常に詰まったため実施方法をまとめる

追記(2023/05/28)

  • 別の環境ですが、laravel10の環境でも本方法でtinkerからメールを送れることを確認しました。

実施環境

  • ハードウェア環境(下記の二つの環境で確認)
項目 情報
OS macOS Catalina(10.15.3)
ハードウェア MacBook Pro (16-inch ,2019)
プロセッサ 2.6 GHz 6コアIntel Core i7
メモリ 16 GB 2667 MHz DDR4
グラフィックス AMD Radeon Pro 5300M 4 GB Intel UHD Graphics 630 1536 MB
  • ソフトウェア環境
項目 情報 備考
PHP バージョン 7.4.3 Homwbrewを用いて導入
Laravel バージョン 7.0.8 commposerを用いて導入
MySQLバージョン 8.0.19 for osx10.13 on x86_64 Homwbrewを用いて導入

前提情報

  • Dockerなどを使用せず、直接MacにLaravelの開発環境を構築して作業を行っている。自分の環境の構築方法を下記に記載する。
  • Gmailを用いたメールの送信を行う。

説明後の着地点

  • 当該laravelアプリのtinker上からコマンドにより指定したメールアドレスへのメール送信を行うことができる。

概要

  1. Googleアカウントの取得と設定
  2. Laravelアプリ側でのメール設定
  3. 確認

詳細

  1. Googleアカウントの取得と設定
    1. メールを送信するGoogleアカウントを作成する後ログインする。すでに持っているアカウントで送信を行う場合はログインする。
    2. 先にログインしたGoogleアカウントのGmailアドレスとパスワードを記憶しておく。
    3. 下記の方法で安全性の低いアプリのアクセスを有効にする。
  2. Laravelアプリ側でのメール設定
    1. メール送信を実装したいアプリのアプリ名ディレクトリまでターミナルで移動する。

    2. アプリ名ディレクトリで下記コマンドを実行して設定ファイルを開く。

      $ vi .env
      
    3. 開いた設定ファイルの26行目付近に下記の様な記載がある事を確認する。

      アプリ名ディレクトリ/.env
      MAIL_MAILER=smtp
      MAIL_HOST=smtp.mailtrap.io
      MAIL_PORT=2525
      MAIL_USERNAME=null
      MAIL_PASSWORD=null
      MAIL_ENCRYPTION=null
      MAIL_FROM_ADDRESS=null
      MAIL_FROM_NAME="${APP_NAME}"
      
    4. 先の設定ファイルのメールの設定部分を下記の様に修正する。

      アプリ名ディレクトリ/.env
      MAIL_DRIVER=smtp
      MAIL_HOST=smtp.gmail.com
      MAIL_PORT=587
      MAIL_USERNAME=安全性の低いアプリのアクセスを有効にしたGoogleアカウントのgmailアドレス
      MAIL_PASSWORD=安全性の低いアプリのアクセスを有効にしたGoogleアカウントのログインパスワード
      MAIL_ENCRYPTION=tls
      MAIL_FROM_ADDRESS=安全性の低いアプリのアクセスを有効にしたGoogleアカウントのgmailアドレス
      MAIL_FROM_NAME=メール差出人の名前(任意のものを入力する)
      
    5. 筆者の環境での当該記載の例を下記に記載する。(パスワードのみ伏せる)

      MAIL_DRIVER=smtp
      MAIL_HOST=smtp.gmail.com
      MAIL_PORT=587
      MAIL_USERNAME=laravel.mail.0104@gmail.com
      MAIL_PASSWORD=*************
      MAIL_ENCRYPTION=tls
      MAIL_FROM_ADDRESS=laravel.mail.0104@gmail.com
      MAIL_FROM_NAME=demo-laravel-crud
      
    6. .envファイルを保存して閉じる。

  3. 確認
    1. アプリ名ディレクトリにて下記コマンドを実行する。

      $ php artisan tinker
      
    2. tinkerで下記を実行してテストメールを送信する。(下記のそのままコピーして実行してもエラーになる。「テストメール送信先アドレス」には皆さんの環境にあったメールアドレスを入力して実行してください。)

      >>> Mail::raw('test mail', function($message) {$message->to('テストメール送信先アドレス')->subject('Test');});
      => null
      
    3. テストメール送信先の受信ボックスを確認して下記の様なメールが届いていればメール送信の設定は完了である。(送信元名前と送信元アドレスはみなさんとは異なる)

      Test_-_shun_okawa_gmail_com_-_Gmail.png
2
5
0

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
2
5