-
Notifications
You must be signed in to change notification settings - Fork 6
// Setting to send mail with php mail() (php mail()でメール送信する設定)
MAIL_DRIVER=sendmail
MAIL_HOST=
MAIL_PORT=
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=
MAIL_FROM_ADDRESS=hello@example.com
MAIL_FROM_NAME=Example
// Not G Suite.
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=your_gmail@gmail.com
MAIL_PASSWORD=your_gmail_app_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=your_gmail@gmail.com
MAIL_FROM_NAME=LaravelGmailSample
use Illuminate\Support\Facades\Mail;
use App\Mail\ConnectMail;
class HogePlugin extends UserPluginBase
{
public function index($request, $page_id, $frame_id, $errors = [])
{
// メール送信
$to_mail_address = 'hello@example.com';
$mail_subject = 'テスト件名';
$mail_text = "本文\n本文2";
Mail::to(trim($to_mail_address))->send(new ConnectMail(['subject' => $mail_subject, 'template' => 'mail.send'], ['content' => $mail_text]));
}
2021/10/20時点
データベースの投稿通知を例に説明。
・データベースで記事を登録時にメール送信処理が呼ばれる
DatabasesPlugin::publicStore()
内
$this->sendPostNotice($databases_inputs, $before_databases_inputs, 'detail', $overwrite_notice_embedded_tags);
↓
・親クラス UserPluginBase:: sendPostNotice() 呼ばれ、(キュー登録 ※1)と(キュー実行 ※2)が行われる。
UserPluginBase:: sendPostNotice()
内
// キュー登録
PostNoticeJob::dispatch($this->buckets, $notice_embedded_tags);
// 非同期でキューワーカ実行
$this->asyncQueueWork();
↓
(※1 キュー登録)
// dispatchメソッドへ渡す引数は、ジョブのコンストラクタへ渡されます。
App\Jobs\PostNoticeJob::__construct()
・コンストラクタで、プライベートクラス変数に値をセットしています。
・この時、ジョブクラスは SerializesModels
トレイトを使っていて、ジョブ(キュー)は、DBの jobs
テーブルに一度格納されます。
・キューに入っているジョブがコンストラクタで Eloquent モデルを受け入れる場合、モデルの識別子だけがキューにシリアル化されます。
(※2 キュー実行)
・ジョブが実際に処理されると、キュー システムはデータベースからモデルインスタンス全体を自動的に再取得します。
↓
・キューを実行して、Mail::to()でメール送信する。メールの内容はnew PostNotice()
から取得。
PostNoticeJob::handle()
内
Mail::to($notice_address)->send(new PostNotice($this->notice_embedded_tags, $bucket_mail));
↓
App\Mail\PostNotice::__construct() で値をセット
App\Mail\PostNotice::build() でメール内容をセット。定型文は 'mail.post.post_text‘。
↓
定型文 'mail.post.post_text‘。
resources\views\mail\post\post_text.blade.php
↓
BucketsMail::getFormatedNoticeBody() 参照
ここで埋め込みタグを使ってる。
dispatchメソッドへ渡す引数は、ジョブのコンストラクタへ渡されます。
php - Laravelキューシリアライズモデル特性が関連する値を削除 - スタックオーバーフロー
キューに入っているジョブがコンストラクタで Eloquent モデルを受け入れる場合、モデルの識別子だけがキューにシリアル化されます。ジョブが実際に処理されると、キュー システムはデータベースからモデルインスタンス全体を自動的に再取得します。
- home
- Overview
- Install
- Install (インストール)(Linux等へのインストール:root権限ある場合)
-
Install-sakura(さくらのレンタルサーバ)
- Install-sakura-root(ドキュメントルート版)
- Install-Xserver(XServer)
- Install-lolipop(ロリポップ-ハイスピードプラン)
- Install-ColorfulBox(カラフルボックス)
- install-CentOS7+PHP7
- Install-XAMPP(Windows+XAMPP)
- install-Docker
- Update
- Plans
- Data
- File Upload
- Design
- Theme(テーマ)
- Font-Icon
- Button(ボタン)
- Display of input error(入力エラーの表示)
- Multi Language
- Policies
- Plugin
- Basic function(基本の関数)
- Opac(蔵書管理)
- OpeningCalendar(開館カレンダー)
- Template(テンプレート)
- Cabinet(キャビネット)
- Whatsnew(新着)
- Search(サイト内検索)
- Approval(承認機能)
- Holidays(祝日管理)
- Menu(メニュー)
-
OriginalPlugin(オリジナル・プラグイン開発)
- OriginalPluginFiles(ファイル一覧)
- Sample.php
- SamplePost.php
- plugin.ini
- SamplesPlugin.php
- create_samples_table.php
- create_sample_posts_table.php
- samples_frame_edit_tab.blade.php
- card/index.blade.php
- card/template.ini
- default/bucket.blade.php
- default/edit.blade.php
- default/index.blade.php
- default/list_buckets.blade.php
- default/show.blade.php
- default/template.ini
- WYSIWYG
- Session
- Programing tips
- Rule(ルール)
- Laravel method tips
- Laravel reference pages
- PHP
- phpcs
- Datetimepicker
- Hook(処理のフック)
- SQL
- Pull-Request(Web画面上)
- Post
- Optimize
- Composer
- npm
- コントローラー側の$this--can()-の調査
- API (外部サービスAPI)
- Test Case(テストケース)
- memo(永原のメモ)
- TCPDF(実装サンプル)
- Phpunit(ユニットテスト)
-
Dusk(ブラウザテスト)
- Github-Actions-Dusk(Github Actionsでブラウザテスト)
- Dusk-Manual(マニュアル自動生成)
- Develop-Windows(Windows開発環境)
- users_columns(ユーザ任意項目)
- container-page-beta(コンテナ方式(ページ)対応(ベータ版))
- Migration
- Other
- Link
- MultiLanguage(多言語化の際の注意点)