Notifier par e-mail en PHP
Après un première article sur les notifications HTML5, je vais continuer cette série sur les notifications avec l’e-mail. Comment notifier simplement un utilisateur par e-mail ?
Installation de la librairie
Dans notre exemple, nous allons utiliser la librairie SwiftMailer produit par SensioLabs, l’éditeur de Symfony.
Pour l’installer, nous allons utiliser Composer :
{ "require": { "swiftmailer/swiftmailer": "*", } }
Puis en haut de notre fichier PHP, nous allons inclure l’autoload de Composer.
include_once './vendor/autoload.php';
Configuration du serveur SMTP
Nous allons configurer SwiftMailer pour qu’il utilise un serveur SMTP pour envoyer les e-mails.
Il pourra utiliser GMail :
$oTransporter = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl'); $oTransporter->setUsername($this->username); $oTransporter->setPassword($this->password); $oMailer = Swift_Mailer::newInstance($oTransporter);
Ou il pourra utiliser OVH :
$oTransporter = Swift_SmtpTransport::newInstance('smtp.votredomaine.tld', 25, 'ssl'); $oTransporter->setUsername($this->username); $oTransporter->setPassword($this->password); $oMailer = Swift_Mailer::newInstance($oTransporter);
Mais il pourra évidemment utiliser votre serveur SMTP.
Configuration du message
Après avoir configuré le serveur SMTP, on va configurer le message que l’on souhaite envoyer.
On crée une instance de message :
$oMessage = Swift_Message::newInstance();
A partir de cet instance, on peut lui définir certains attributs :
- le sujet :
$oMessage->setSubject('Subject');
- l’expéditeur :
$oMessage->setFrom(array('email@domain.tld' => 'Nom Prénom'));
- le(s) destinataire(s) :
$oMessage->setTo(array('email1@domain.tld' => 'Nom1 Prénom1', 'email2@domain.tld' => 'Nom2 Prénom2')); $oMessage->setCc(array('email3@domain.tld' => 'Nom3 Prénom3')); $oMessage->setBcc(array('email4@domain.tld' => 'Nom4 Prénom4'));
- le corps du message :
$oMessage->setBody('Body');
- les pièces jointes :
$oMessage->attach(Swift_Attachment::fromPath('file.ext'));
Comment faire pour définir un corps HTML et Texte à votre mail ?
$oMessage->setBody('<strong>Gras</strong><h1>Titre</h1>', 'text/html'); $oMessage->addPart('GrasTitre', 'text/plain');
Envoi d’e-mail
Ensuite, il suffit de lier le message au serveur :
$result = $oMailer->send($oMessage);
Lien : Documentation de SwiftMailer
Commentaires
[…] messagerie instantanée de Facebook. Donc dans cet article, après les notifications HTML5 et par email, nous allons utiliser PHP pour envoyer un petit message de chat sur Google […]
[…] vous avoir appris à notifier sur Google Chat ou Jabber et par email, on va aujourd’hui apprendre à notifier des utilisateurs sur IRC, un des systèmes de chat […]
[…] avoir publié sur Facebook, envoyé un message sur IRC ou XMPP et même envoyé un e-mail, nous allons voir comment envoyer un message sur le réseau de microblogging : […]
[…] avoir publié sur IRC, ou notifié un des vos utilisateurs par email, nous allons passer aux réseaux sociaux en commencant par Facebook. Celui-ci reste le réseau […]
Ajouter un commentaire