Les mails avec Laravel
Générer un mailable : php artisan make:mail UserRegistred app/http/mail dans build, s'il y a une adresse mail pour chaque mail alors : S'il y a une adresse mail globale dans config mail, il faut ajouter : 'from' => ['address' => 'example@example.com', 'name' => 'App Name'], Dans le controlle concerné, ici user
public function mailconfirmation(){
Mail::to("test@mail.com")->send(new UserRegistred());
return view("home");
}
dans le mail/UserRegitred
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this
->subject("Confitmation inscription")
->from("example@example.com", "Example")
->view("emails.users.registered");
}
si on veut inclure des variables dans le mail
on passe des variables depuis le controllerUser ou d'envoi
Mail::to()->send(new UserRegistered($user))
d
le construct du Mail/UserRegistred
$this ->data = $user;
qu'on lie à une variable public
$data = [];
dans la view emails/users/registered
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>Confirmation d'inscription</h1>
</body>
</html>
Et faire une route aevc return view
// Envoi de mail
Route::get('/confirmation', [UserController::class, 'mailconfirmation'])->name('confirmation');
Pour résumer :
On créé un construct de mailsender
il n'y a pas de compact ou with