Quantcast
Channel: 初心者タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 21093

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

$
0
0

目的

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

実施環境

  • ハードウェア環境(下記の二つの環境で確認)
項目情報
OSmacOS 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.3Homwbrewを用いて導入
Laravel バージョン7.0.8commposerを用いて導入
MySQLバージョン8.0.19 for osx10.13 on x86_64Homwbrewを用いて導入

前提情報

  • 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


Viewing all articles
Browse latest Browse all 21093

Trending Articles