PHP フレームワーク「Laravel 9」でお問い合わせシステム制作

PHPフレームワーク Laravel 9 でお問い合わせシステムを制作。Laravel 9 でのメール送信方法を習得する

  • PHP開発環境がない場合は「 AlmaLinux8.6, PHP8.1, MySQL8, Apache 」で LAMP 環境を構築後に実施
  • Laravelのインストールは「PHP フレームワーク「Laravel 9」インストール」を参照。Laravel プロジェクトディレクトリが /var/www/laravel.sunabird.local/ に作成される。このカリキュラム内でファイル場所の明記がない場合、Laravel プロジェクトディレクトリ内のファイルを参照する


練習1 : Rooting 設定

▼ お問い合わせシステムのルーティングを追加

routes/web.php (最下部に追加)


練習1 : レイアウトテンプレート生成

共通レイアウトを定義する

▼ 共通レイアウト格納ディレクトリ layouts 作成

# mkdir resources/views/layouts


▼ 共通レイアウトテンプレートを作成

resources/views/layouts/app.blade.php (新規作成)


練習2 : Controller 生成

▼ お問い合わせシステムのコントローラーを生成する

# php artisan make:controller ContactController
Controller created successfully.

  • artisan コマンドは Laravel プロジェクトディレクトリで実行

▼ 上記コマンド(php artisan make:controller ...)で生成されたコントローラーファイルを編集

app/Http/Controllers/ContactController.php

  • 「自分宛メールアドレス」を設定すること
    \Mail::to('自分宛メールアドレス')->send(new Contact('contact._temp_mail_me', $title, $input));

練習3 : Mailable 生成

▼ メール送信の設定変更

.env (ファイル編集)

MAIL_MAILER=sendmail
MAIL_HOST=localhost

.env 設定が反映されない(bootstrap/cache/config.php が存在する)場合、設定キャッシュをクリア

# php artisan config:cache
Configuration cache cleared!
Configuration cached successfully!


▼ Mailable 生成

# php artisan make:mail Contact
Mail created successfully.

  • artisan コマンドは Laravel プロジェクトディレクトリで実行

▼ 上記コマンド(php artisan make:mail ...)で生成された Mailable ファイルを編集

app/Mail/Contact.php


練習4 : View 生成

▼ お問い合せ View ディレクトリ contact 作成

# mkdir resources/views/contact


▼ フォームページ View ファイル作成

resources/views/contact/index.blade.php (新規作成)

▼ ブラウザからアクセス(https://laravel.sunabird.local/contact)


▼ 確認ページ View ファイル作成

resources/views/contact/confirm.blade.php (新規作成)

▼ ブラウザ表示


▼ 完了ページ View ファイル作成

resources/views/contact/thanks.blade.php (新規作成)

▼ ブラウザ表示


▼ 自分宛メール本文テンプレート作成

resources/views/contact/_temp_mail_me.blade.php (新規作成)

(自分宛に送信されるメール)

件名    Laravelからのお問い合わせ
送信者  info@sunabird.local
宛先    (自分宛メールアドレス)
メール本文
Laravelサイトからお問い合わせがありました。

メールアドレス : test@sunabird.local

お問い合わせ内容 :
お問い合わせテスト
テストテストテストテスト


▼ ユーザー宛メール本文テンプレート作成

resources/views/contact/_temp_mail_you.blade.php (新規作成)

(ユーザー宛に送信されるメール)

件名    お問い合わせありがとうございました
送信者  info@sunabird.local
宛先    test@sunabird.local
メール本文
お問い合わせありがとうございました。

内容を確認し担当者よりご連絡いたします。
何卒、宜しくお願いいたします。

--
(署名)


▶ 実際に動作させメールが配信されることを確認する


ポイント

  • View ファイル Blade テンプレートの {{ }} は自動エスケープ
  • エラーメッセージは resources/lang/ja/validation.php で設定(英語用をコピーして編集)
  • メール送信設定は .env ファイルを編集
  • メール毎にテンプレートファイルを作成(自分宛 / ユーザー宛)