Laravelタスクスケジューラに基づいて定期的にメールを送信するためのミニプログラム
注: この記事では主に Laravel の Artisan コマンド、タスク スケジューラ、およびメール関連の知識を学習します。メールを定期的に送信するための簡単な小さなデモを作成します。 。プロセス全体が完了するまでにかかる時間はわずか 1 時間です。同時に、作成者は開発プロセス中にいくつかのスクリーンショットとコードを貼り付けて、読み取り効率を向上させます。筆者の開発環境はネイティブMAMP統合ソフト、PHP7.0、Laravel5.2.*です。
Laravelのアーティザンコマンドの内容についてはサービス - アーティザンコンソールを、メールメールサービスの内容についてはサービス - メールを、タスクスケジューラのタスクタイマーについてはを参照してください。サービス - タスクのスケジュールを参照してください。
Artisan Command
新しい Artisan コマンドを作成します:
php artisan make:console SendEmails --command=emails:send
AppConsoleCommandsSendEmails.php ファイルにコードを追加します:
class SendEmails extends Command{ /** * The name and signature of the console command. * * @var string */ protected $signature = 'emails:send'; /** * The console command description. * * @var string */ protected $description = 'This is a demo about sending emails to myself'; /** * Create a new command instance. * * @return void */ public function __construct() { parent::__construct(); } /** * Execute the console command. * * @return mixed */ public function handle() { $this->info('I am handsome'); $this->error('I am not ugly'); }}
Write $ description メソッドと handle() メソッドでは、$description 変数を使用してコマンドの説明を表示し、handle() を使用してコマンドを処理し、コマンドを AppConsoleCommandsKernel.php に登録します。
protected $commands = [ // Commands\Inspire::class, Commands\SendEmails::class, ];
それでは、ターミナルに php 職人と入力して、コマンドを表示して実行できます。
メール サービス API ドライバーは、guzzlehttp/guzzle パッケージをインストールする必要がありますこれはプロジェクトのルート ディレクトリにあります:
composer require guzzlehttp/guzzle
次に、.env ファイルで電子メール ドライバーとユーザー名とパスワードを構成します:
次に、ハンドルを変更します( ) メソッド:
/** * Execute the console command. * * @return mixed */ public function handle() {// $this->info('I am handsome');// $this->error('I am not ugly'); $user = [ 'email' => 'XXX@XXX.com',//一个有效的邮箱接收地址 'name' => 'liuxiang', ]; $status = Mail::send('emails.send', ['user'=>$user], function($msg) use ($user){ $msg->from('XXX@XXX.com', 'liuxiang email');//一个有效的邮箱发送地址 $msg->to($user['email'], $user['name'])->subject('This is a demo about sending emails to myself'); }); if(!$status){ $this->error('Fail to send email');exit; } $this->info('Success to send email');exit; }
Send コンテンツはビュー email.send にあります。 新しい resource/views/emails/send.blade.php ファイルを作成します:
<html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --> <title>Bootstrap Template</title> <style> html,body{ width: 100%; height: 100%; } *{ margin: 0; border: 0; } .content{ text-align: center; margin: 50px; } </style> </head> <body> <div class="container"> <div class="row"> <div class="col-xs-12 col-md-12"> <p class="content">This is a email by Laravel Artisan Command</p> </div> </div> </div> <script> </script> </body></html>
すべての準備が整いました。プロジェクトのルート ディレクトリで電子メール送信コマンドを実行すると、正常に送信され印刷された電子メールが表示されます。
その後、受信メールボックスが電子メールを受信します。
動作しています!!!
タスクスケジューラ
結局のところ、毎回手動でメールを送信するのは面白くありません。システムのタイマー crontab を使用できます。 Laravel にはタスクタイマーがあり、それを使って遊ぶことができます。 app/Console/Kernel.php ファイルを変更します:
/** * Define the application's command schedule. * * @param \Illuminate\Console\Scheduling\Schedule $schedule * @return void */ protected function schedule(Schedule $schedule) { // $schedule->command('inspire')->hourly(); //$schedule->command('emails:send')->everyFiveMinutes(); $schedule->command('emails:send')->everyMinutes(); }
ターミナルに crontab -e と入力して cron エントリを追加します:
* * * * * php /Applications/MAMP/htdocs/laravelemail/artisan schedule:run 1>> /dev/null 2>&1
すると、プログラムが送信します。毎分 cron エントリ 電子メール:
概要: この記事では主に Laravel の Artisan Command、Mail、Task-Scheduler を使用して、嫌がらせメールを定期的に送信する楽しい小さなデモを作成します (笑)。とても楽しいので、ぜひ試してみてください。 。さて、数日後にデザインパターンをベースにLaravelについてお話したいと思います。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。
