You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
		
		
		
		
		
			
		
			
				
					
					
						
							59 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
	
	
							59 lines
						
					
					
						
							1.3 KiB
						
					
					
				| <?php | |
| 
 | |
| namespace App\Mail; | |
| 
 | |
| use Illuminate\Bus\Queueable; | |
| use Illuminate\Contracts\Queue\ShouldQueue; | |
| use Illuminate\Mail\Mailable; | |
| use Illuminate\Mail\Mailables\Content; | |
| use Illuminate\Mail\Mailables\Envelope; | |
| use Illuminate\Queue\SerializesModels; | |
| 
 | |
| class Communication extends Mailable | |
| { | |
|     use Queueable, SerializesModels; | |
| 
 | |
|     protected $template; | |
|     protected $user; | |
|     protected $data; | |
|     protected $annexes; | |
|     /** | |
|      * Create a new message instance. | |
|      * | |
|      * @return void | |
|      */ | |
|     public function __construct($data) | |
|     { | |
|         $this->template = $data->template; | |
|         $this->user = $data->user; | |
|         $this->subject = $data->subject; | |
|         $this->annexes = $data->annexes ?? []; | |
|         $this->data = $data->data; | |
|     } | |
| 
 | |
|     public function content(): Content | |
|     { | |
|         return new Content( | |
|             view: $this->template, | |
|             text: $this->template .  "-text", | |
|             with: $this->data, | |
|         ); | |
|     } | |
| 
 | |
|     /** | |
|      * Build the message. | |
|      * | |
|      * @return $this | |
|      */ | |
|     public function build() | |
|     { | |
|         $mail = $this; | |
|         if(count($this->annexes)) { | |
|             foreach($this->annexes as $annexe) { | |
|                 $mail = $mail->attachData($annexe->data, $annexe->name, [ "mime" => $annexe->type ]); | |
|             } | |
|         } | |
|         return $mail->content(); | |
|     } | |
| 
 | |
| }
 | |
| 
 |