From a82504b062f42ebf8e60e36b2fc4f387be10d42c Mon Sep 17 00:00:00 2001 From: "Yunchuan Li (George)" <liyunchuanm9@gmail.com> Date: Wed, 28 Jul 2021 18:04:46 +1000 Subject: [PATCH 1/2] email set up complete --- app/Action/EmailAction.php | 10 ++++++ .../Controllers/Sample/SampleController.php | 15 ++++++++ app/Mail/WelcomeMail.php | 34 +++++++++++++++++++ app/Task/EmailTasks.php | 17 ++++++++++ resources/views/email/welcome.blade.php | 12 +++++++ routes/web.php | 4 +++ tests/Unit/Email/EmailTest.php | 18 ++++++++++ 7 files changed, 110 insertions(+) create mode 100644 app/Action/EmailAction.php create mode 100644 app/Mail/WelcomeMail.php create mode 100644 app/Task/EmailTasks.php create mode 100644 resources/views/email/welcome.blade.php create mode 100644 tests/Unit/Email/EmailTest.php diff --git a/app/Action/EmailAction.php b/app/Action/EmailAction.php new file mode 100644 index 0000000..e219b0b --- /dev/null +++ b/app/Action/EmailAction.php @@ -0,0 +1,10 @@ +<?php + +namespace App\Action; + +use Illuminate\Database\Eloquent\Model; + +class EmailAction extends Model +{ + // +} diff --git a/app/Http/Controllers/Sample/SampleController.php b/app/Http/Controllers/Sample/SampleController.php index fc13086..3ad32f6 100644 --- a/app/Http/Controllers/Sample/SampleController.php +++ b/app/Http/Controllers/Sample/SampleController.php @@ -3,7 +3,12 @@ namespace App\Http\Controllers\Sample; use App\Http\Controllers\Controller; +use App\Action\EmailAction; + use Illuminate\Http\Request; +//use App\Mail\WelcomeMail; +//use Illuminate\Support\Facades\Mail; + class SampleController extends Controller { @@ -17,4 +22,14 @@ class SampleController extends Controller { return "world"; } + + public function sendEmail(Request $request) + { +// Mail::to("email@email.com")->send(new WelcomeMail()); +// Mail::to("client@email.com") +// ->queue(new WelcomeMail()); +// EmailTasks::sendWelcomeEmail($addr); +// return new WelcomeMail(); + return EmailAction::sendEmail() + } } diff --git a/app/Mail/WelcomeMail.php b/app/Mail/WelcomeMail.php new file mode 100644 index 0000000..de7a133 --- /dev/null +++ b/app/Mail/WelcomeMail.php @@ -0,0 +1,34 @@ +<?php + +namespace App\Mail; + +use Illuminate\Bus\Queueable; +use Illuminate\Contracts\Queue\ShouldQueue; +use Illuminate\Mail\Mailable; +use Illuminate\Queue\SerializesModels; + +class WelcomeMail extends Mailable +{ + use Queueable, SerializesModels; + + /** + * Create a new message instance. + * + * @return void + */ + public function __construct() + { + // + } + + /** + * Build the message. + * + * @return $this + */ + public function build() + { +// return $this->from('server@example.com') + return $this->markdown('email.welcome'); + } +} diff --git a/app/Task/EmailTasks.php b/app/Task/EmailTasks.php new file mode 100644 index 0000000..d4f736f --- /dev/null +++ b/app/Task/EmailTasks.php @@ -0,0 +1,17 @@ +<?php + +namespace App\Task; + +use App\Mail\WelcomeMail; +use Illuminate\Database\Eloquent\Model; +use Illuminate\Support\Facades\Mail; + +class EmailTasks +{ + // + public static function sendWelcomeEmail($addr) + { + Mail::to($addr)->queue(new WelcomeMail()); + return new WelcomeMail(); + } +} diff --git a/resources/views/email/welcome.blade.php b/resources/views/email/welcome.blade.php new file mode 100644 index 0000000..bc41428 --- /dev/null +++ b/resources/views/email/welcome.blade.php @@ -0,0 +1,12 @@ +@component('mail::message') +# Introduction + +The body of your message. + +@component('mail::button', ['url' => '']) +Button Text +@endcomponent + +Thanks,<br> +{{ config('app.name') }} +@endcomponent diff --git a/routes/web.php b/routes/web.php index 1ea7051..476103c 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,5 +1,6 @@ <?php +use App\Http\Controllers\Sample\SampleController; use Illuminate\Support\Facades\Route; /* @@ -15,3 +16,6 @@ use Illuminate\Support\Facades\Route; Route::get('/', 'Sample\SampleController@welcome'); Route::get('/hello', 'Sample\SampleController@hello'); + +Route::get('/sendEmail', 'Sample\SampleController@sendEmail'); + diff --git a/tests/Unit/Email/EmailTest.php b/tests/Unit/Email/EmailTest.php new file mode 100644 index 0000000..6be15c8 --- /dev/null +++ b/tests/Unit/Email/EmailTest.php @@ -0,0 +1,18 @@ +<?php + +namespace Tests\Unit\Email; + +use PHPUnit\Framework\TestCase; + +class EmailTest extends TestCase +{ + /** + * A basic unit test example. + * + * @return void + */ + public function testExample() + { + $this->assertTrue(true); + } +} -- GitLab From 91ba595b2ca4cbd92739ff77c629f5ab616b9b20 Mon Sep 17 00:00:00 2001 From: "Yunchuan Li (George)" <liyunchuanm9@gmail.com> Date: Thu, 5 Aug 2021 11:39:49 +1000 Subject: [PATCH 2/2] sample email web send --- app/Action/EmailAction.php | 7 +++++++ app/Http/Controllers/Sample/SampleController.php | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/Action/EmailAction.php b/app/Action/EmailAction.php index e219b0b..a6719d4 100644 --- a/app/Action/EmailAction.php +++ b/app/Action/EmailAction.php @@ -2,9 +2,16 @@ namespace App\Action; +use App\Mail\WelcomeMail; use Illuminate\Database\Eloquent\Model; +use Illuminate\Support\Facades\Mail; class EmailAction extends Model { // + public static function sendEmail($addr) + { + Mail::to($addr)->queue(new WelcomeMail()); + return new WelcomeMail(); + } } diff --git a/app/Http/Controllers/Sample/SampleController.php b/app/Http/Controllers/Sample/SampleController.php index 3ad32f6..d999691 100644 --- a/app/Http/Controllers/Sample/SampleController.php +++ b/app/Http/Controllers/Sample/SampleController.php @@ -30,6 +30,7 @@ class SampleController extends Controller // ->queue(new WelcomeMail()); // EmailTasks::sendWelcomeEmail($addr); // return new WelcomeMail(); - return EmailAction::sendEmail() +// $addr = $request->input("dstEmail"); + return EmailAction::sendEmail("client_email@example.com"); } } -- GitLab