Je développe un site à l’aide de Laravel 4 et souhaite me faire parvenir des courriels ad-hoc lors des tests, mais il semble que le seul moyen d’envoyer des courriels est de passer par une vue.
Est-il possible de faire quelque chose comme ça?
Mail::queue('This is the body of my email', $data, function($message)
{
$message->to('[email protected]', 'John Smith')->subject('This is my subject');
});
Comme mentionné dans une réponse sur Laravel, mail: passer chaîne au lieu de vue , vous pouvez le faire (code copié textuellement de la réponse de Jarek):
Mail::send([], [], function ($message) {
$message->to(..)
->subject(..)
// here comes what you want
->setBody('Hi, welcome user!');
});
Vous pouvez également utiliser une vue vide en l'insérant dans app/views/email/blank.blade.php.
{{{ $msg }}}
Et rien d'autre. Puis vous codez
Mail::queue('email.blank', array('msg' => 'This is the body of my email'), function($message)
{
$message->to('[email protected]', 'John Smith')->subject('This is my subject');
});
Et cela vous permet d'envoyer des emails vierges personnalisés à partir de différentes parties de votre application sans avoir à créer différentes vues pour chacune d'elles.
Si vous souhaitez envoyer uniquement du texte, vous pouvez utiliser la méthode incluse:
Mail::raw('Message text', function($message) {
$message->from('[email protected]', 'Laravel');
$message->to('[email protected]')->cc('[email protected]');
});
Non, avec le courrier Laravel prêt à l'emploi, vous devrez passer une vue, même si elle est vide. Vous auriez besoin d'écrire votre propre courrier pour activer cette fonctionnalité.