Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Code Executed in UserController.php:
- public function sendEmail(Request $request)
- {
- $users = User::all();
- SendEmailUpdates::dispatch($users,request('subject'),request('message'));
- request()->session()->flash('status_success',"E-mail updates has been queued!");
- return back();
- }
- ** App\Jobs\SendEmailUpdates.php **
- <?php
- namespace App\Jobs;
- Use Mail;
- use App\Mail\EmailUpdate;
- use Illuminate\Bus\Queueable;
- use Illuminate\Queue\SerializesModels;
- use Illuminate\Queue\InteractsWithQueue;
- use Illuminate\Contracts\Queue\ShouldQueue;
- use Illuminate\Foundation\Bus\Dispatchable;
- class SendEmailUpdates implements ShouldQueue
- {
- use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
- protected $users;
- protected $subject;
- protected $message;
- /**
- * Create a new job instance.
- *
- * @return void
- */
- public function __construct($users,$subject,$message)
- {
- $this->users = $users;
- $this->subject = $subject;
- $this->message = $message;
- }
- /**
- * Execute the job.
- *
- * @return void
- */
- public function handle()
- {
- try{
- foreach($this->users as $user){
- Mail::to($user)->send(New EmailUpdate($user,$this->subject,$this->message));
- }
- $user->notifications()->create([
- 'type'=>'success',
- 'heading'=>'Success!',
- 'content'=>'E-mail update has been successfully sent to the group of users!',
- 'action_link'=>'javascript:void(0)'
- ]);
- } catch (\Exception $e){
- report($e);
- Auth::user()->notifications()->create([
- 'type'=>'error',
- 'heading'=>'Error!',
- 'content'=>"Error sending e-mail updates to users! Please check log file for more information.",
- 'action_link'=>'javascript:void(0)'
- ]);
- }
- }
- }
- ** App\Mail\EmailUpdate.php **
- <?php
- namespace App\Mail;
- use App\User;
- use Illuminate\Bus\Queueable;
- use Illuminate\Mail\Mailable;
- use Illuminate\Queue\SerializesModels;
- use Illuminate\Contracts\Queue\ShouldQueue;
- class EmailUpdate extends Mailable
- {
- use Queueable, SerializesModels;
- public $user;
- public $subject;
- public $update;
- /**
- * Create a new message instance.
- *
- * @return void
- */
- public function __construct(User $user,$subject,$update)
- {
- $this->user = $user;
- $this->subject = $subject;
- $this->update = $update;
- }
- /**
- * Build the message.
- *
- * @return $this
- */
- public function build()
- {
- return $this->view('emails.emailUpdate')
- ->subject($this->subject);
- }
- }
Add Comment
Please, Sign In to add comment