Aller au contenu principal
Version: 4.x

✉️ Envoie de Mail

Introduction

Envoyer des emails dans une application est monnaie courante. Bow Framework intègre un système d'envoi d'email facile à utiliser. Vous pouvez utiliser ce système à travers plusieurs pilotes communement appelés drivers:

  • SMTP - Envoie direct via un serveur SMTP
  • SES - Vous pouvez aussi utiliser SES
  • MAIL - Le système utilisera le fonction email natif de PHP

Configuration

Vous trouverez la configuration dans le fichier config/mail.php qui est rélativement simple, les options sont toutes commentés.

Installez les packages supplémentaire

  • ses "aws/aws-sdk-php"

Utilisation

Pour utiliser le service, vous devez appeler la classe Bow\Mail\Mail::class. Il y a deux méthode statique pour l'envoie de mail email et raw_email.

La méthode send

email permet d'envoyer des emails en se basant sur une vue dans l'application.

Prototype send

email($view, array $data, callable $callable)
ParamètreType
viewString L'email du destinataire
dataArray Les informations à passer à la vue
callableClosure Le constructeur du message

$callable vous permet de construire le message et prend en paramètre une instance de Bow\Mail\Message qui permet d'ajouter le destinataire, l'objet, les pièces jointes, l'expéditeur.

Exemple d'utilisation:

Considérons la vue email-view.tintin.php qui contient les informations suivantes:

Bonjour {{ $name }},

Nous vous informons que vous compte viens d'être créditer de 100.000.000 F.

Cordialement,

Ecrivons maintenant le code qui envoie le mail:

use Bow\Mail\Mail;
use Bow\Mail\Message;

$data = [
'name' => 'Franck',
];

Mail::send('email-view', $data, function (Message $message) {
$message->to('info@exemple.com');
$message->subject("Paiement !");
$messate->from("Bow <info@exemple.com>");
});

API de Message

Bow Framework va donc passer une instance de Bow\Mail\Message qui vous permettra d'ajouter des informations supplémentaires à votre email, notamment le destinataire.

addHeader, ajout des entêtes personnalisés
$message->addHeader(string $key, string $value)
to, définit le destinataire
$message->to(string $to, string $name = null)
toList, Ajout plusieurs destinataires
$message->toList(array $list_desc)
addFile, Permet d'ajouter une pièce jointe
$message->addFile(string $file)
subject, Définit l'objet du mail
$message->subject(string $subject)
from, définit l'expéditeur du mail
$message->from(string $from, string $name = null)
toHtml, définir le type de contenu en text/html
$message->html($html)
toText, Définit le corps du message
$message->text(string $text)
addBcc, ajout l'entête Carbon Copy
$message->addBcc(string $mail, string $name = null)
addCc, ajout l'entête Carbon Copy
$message->addCc(string $mail, string $name = null)
addReplyTo, ajout l'entête Reply-To
$message->addReplyTo(string $mail, $name = null)
addReturnPath, ajout l'entête Return-Path
$message->addReturnPath(string $mail, $name = null)

La méthode raw

raw par contre, permet d'envoyer des emails avec un message brute

Prototype raw

raw_email($to, $subject, $message, array $headers = [])
ParamètreType
toString L'email du destinataire
subjectString L'objet du mail
messageString Le message à envoyer
headersArray Les entête-https à envoyer, par defaut est vide
use Bow\Mail\Mail;

$email = "hello@exemple.com";
$subject = "Hello, world";
$message = "C'est juste un email de teste";

Mail::raw($email, $subject, $message);

Il manque quelque chose ?

Si vous rencontrez des problèmes avec la documentation ou si vous avez des suggestions pour améliorer la documentation ou le projet en général, veuillez déposer une issue pour nous, ou envoyer un tweet mentionnant le compte Twitter @bowframework ou sur directement sur le github.