RootsLabs

More than a tool ! GitHub Google+ LinkedIn RSS

Notifier par e-mail en PHP

Progi1984 - Commentaires (4)

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 ?

Logo PHP

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

1. RootsLabs » Notifier via XMPP en PHP, le 10 mars 2014 à 10:37

[…] 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 […]

2. RootsLabs » Notifier via IRC en PHP, le 1 avril 2014 à 10:32

[…] 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 […]

3. RootsLabs » Publier sur Twitter en PHP, le 4 octobre 2017 à 09:57

[…] 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 : […]

4. RootsLabs » Notifier sur Facebook en PHP, le 8 novembre 2017 à 09:31

[…] 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

Commentaire :