Tutoriel Vidéo PHP Mailtrap.io

Télécharger la vidéo

Mailtrap.io est un service qui offre un faux serveur SMTP pour tester les envois d'emails pendant la phase de développement de votre projet. Ceci permet d'éviter d'envoyer des emails à de vrai clients lors des tests mais aussi de tester facilement l'envoi d'email sur un environnement local (qui ne dispose pas de système d'envoi).

Mise en place

La mise en place se fait très facilement car il suffit de passer par le serveur SMTP de mailtrap.io. Si vous utilisez SwiftMailer :

if ($_SERVER['SERVER_NAME'] == 'localhost') {
  $transport = Swift_SmtpTransport::newInstance('mailtrap.io', 25)
    ->setUsername('username mailtrap')
    ->setPassword('password mailtrap');
} else {
  $transport = Swift_MailTransport::newInstance();
}
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance('Bienvenue sur mon site')
  ->setFrom(array('john@doe.com' => 'John Doe'))
  ->setTo(array('receveur@domain.com'))
  ->setBody('Ici le contenu de l\'email');
$result = $mailer->send($message);

Si vous utilisez un framework la configuration est encore plus simple, il vous suffit de modifier le fichier de configuration correspondant à l'environnement de developpement pour relier vos envois d'emails à mailtrap.

Wamp

Sur wamp il est possible d'utiliser fake sendmail pour que Wamp utilise le SMTP de mailtrap lors de l'envoi d'email avec la fonction mail() standard. Pour cela il suffit de placer fake sendmail dans un dossier spécifique de votre système puis de modifier le fichier php.ini correspondant à votre version de php. On décommente la ligne contenant sendmail_path et on indique le chemin vers l'éxécutable de sendmail.

sendmail_path = "C:/Votre/Chemin/sendmail.exe"

Enfin, dans le dossier sendmail il faut éditer le fichier sendmail.ini afin d'utiliser le SMTP de mailtrap. N'oubliez pas de redémarrer Wamp pour que les modifications soient prises en compte.

Attention !, si vous utilisez cette méthode vos emails doivent contenir une en-tête FROM afin que les emails soient redistribués correctement.