Email

Comment intégrer facilement Mailgun avec PHP

À mes débuts dans le codage, je me souviens avoir hésité entre l'apprentissage d'ASP.NET et de PHP. J'ai lu des milliers de fils de discussion sur des forums consacrés à chaque langage pour m'aider à prendre ma décision.
Image pour Comment intégrer facilement Mailgun avec PHP

À mes débuts dans le codage, je me souviens avoir hésité entre l’apprentissage d’ASP.NET et de PHP. J’ai lu des milliers de fils de discussion sur des forums consacrés à chaque langage pour m’aider à prendre ma décision.

J’ai choisi PHP principalement pour sa communauté, la disponibilité des exemples et le fait qu’il s’agisse d’un projet open source. Je suis certain que ce sont des raisons similaires qui vous ont poussé à vous aventurer dans le monde de PHP.

PHP est l’un des langages les plus utilisés. Pourtant, on trouve beaucoup d’informations confuses ou obsolètes sur le Web.

L’objectif de cet article est de vous fournir un aperçu détaillé de l’utilisation de Mailgun dans votre environnement PHP, avec des exemples simples à copier-coller

Utiliser la bibliothèque officielle Mailgun-PHP

Une façon très simple d’utiliser Mailgun et de tirer parti de son excellente API pour l’envoi d’emails est d’installer la bibliothèque PHP officielle dans votre environnement de développement, écrite et maintenue en tant que projet open source par notre Mailgunner Travis.

Étapes

  • Ouvrez votre terminal et accédez au dossier public de votre serveur. C’est là que vous stockez votre site Web. Son emplacement varie selon votre installation et le serveur Web utilisé – cd /var/www/html
  • Créez un répertoire vide pour ce projet – mkdir mailgun-php
  • Accédez au répertoire et exécutez les commandes suivantes – cd mailgun-php (pour changer de répertoire)
  • Exécutez maintenant la commande suivante pour télécharger et installer Composer. – curl -sS https://getcomposer.org/installer | php

Utilisé ainsi, Composer nous permet de télécharger facilement des bibliothèques PHP localement dans le dossier. Maintenant, utilisons Composer pour installer la bibliothèque Mailgun elle-même.

  • Exécutons cette commande pour indiquer à Composer que nous allons utiliser la bibliothèque Mailgun (ici, la version 1.7.1) et ses dépendances (et que nous devons donc les télécharger). – php composer.phar require mailgun/mailgun-php:~1.7.1

Félicitations, vous avez installé la bibliothèque officielle de Mailgun et vous pouvez désormais écrire du code !

Ouvrez un fichier et incluez le fichier vendor/autoload.php pour commencer. Tous les exemples ci-dessous supposent que vous avez déjà inclus ceci dans votre fichier :

                                

                                    
                                
                            

Ensuite, suivez ces instructions de la documentation officielle pour envoyer un message à l’aide du SDK :

                                

                                    messages()->send($domain, $params);
$mg->messages()->send('example.com', [
  'from'    => 'bob@example.com',
  'to'      => 'sally@example.com',
  'subject' => 'The PHP SDK is awesome!',
  'text'    => 'It is so simple to send a message.'
]);
?>
                                
                            

Rappel : $domain doit correspondre au domaine que vous avez configuré sur app.mailgun.com.

Utiliser Swift Mailer

Utiliser Mailgun avec Swift Mailer est un jeu d’enfant.

Assurez-vous d’avoir les identifiants SMTP de votre domaine à portée de main ! Vous pouvez les trouver ici , ils sont nommés ainsi :

  • Identifiant SMTP par défaut
  • Mot de passe par défaut

Étapes

  • Créez un dossier appelé Swiftmailer – mkdir swiftmailer, cd swiftmailer
  • Téléchargez Composer pour installer Swiftmailer et ses dépendances
    • curl -sS https://getcomposer.org/installer | php
  • Installer Swiftmailer
    • php composer.phar require swiftmailer/swiftmailer @stable
  • Les fichiers seront téléchargés. Une fois l’opération terminée, créez simplement votre propre fichier vide pour vérifier que phpmailer fonctionne. Dans votre terminal, vous pouvez y parvenir en exécutant cette commande :
    • touch mailgun_with_swiftmailer.php
    • vim mailgun_with_swiftmailer.php

Ici, nous utilisons vim, mais vous pouvez modifier le fichier mailgun_with_swiftmailer.php dans l’éditeur avec lequel vous êtes le plus à l’aise.

                                

                                    setUsername('your SMTP username')
  ->setPassword('your SMTP password')
  ;

// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);

// Create a message
$message = Swift_Message::newInstance('Hello from Mailgun')
  ->setFrom(array('someone@domain.com' => 'John Doe'))
  ->setTo(array('someone_else@domain.org', 'third_contact@domain.org' => 'A third name'))
  ->setBody("And that's another ace in the hole for the Mailgun dev!")
  ;

// Send the message
$result = $mailer->send($message);
?>
                                
                            

Vous trouverez de plus amples informations sur l’envoi d’emails bien plus complexes dans la documentation officielle de Swiftmailer, disponible en ligne ici.

Utiliser PHP Mailer

Mailgun peut également être utilisé avec l’une des bibliothèques d’envoi d’emails PHP les plus populaires : PHP Mailer.

PHP Mailer est une excellente alternative à la fonction intégrée mail() de PHP, car elle accélère le processus et vous permet de personnaliser en profondeur la façon dont vous envoyez des emails avec PHP. Les distributions Linux et Mac OS X disposent d’une fonction intégrée pour envoyer des emails, bien qu’elle soit peu fiable. À ce propos, il convient de mentionner que Windows ne dispose d’aucune fonction pour envoyer des emails, je vous suggère donc de poursuivre votre lecture.

Étapes

  • Créez un dossier nommé phpmailer
    • mkdir phpmailer
    • cd phpmailer
  • Téléchargez Composer pour installer phpmailer et ses dépendances
    • curl -sS https://getcomposer.org/installer | php
  • Composer est prêt. Installons maintenant Phpmailer(5.2.8) :
    • php composer.phar require phpmailer/phpmailer:5.2.8
  • Les fichiers seront téléchargés. Une fois l’opération terminée, créez simplement votre propre fichier vide pour vérifier que phpmailer fonctionne
    • touch mailgun_with_phpmailer.php
    • vim mailgun_with_phpmailer.php

Ici, nous utilisons vim, mais vous pouvez modifier le fichier mailgun_with_phpmailer.php dans l’éditeur avec lequel vous êtes le plus à l’aise.

                                

                                    isSMTP();  // Set mailer to use SMTP
$mail->Host = 'smtp.mailgun.org';  // Specify mailgun SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'username@domain.com'; // SMTP username from https://mailgun.com/cp/domains
$mail->Password = 'myp@55w0rd'; // SMTP password from https://mailgun.com/cp/domains
$mail->SMTPSecure = 'tls';   // Enable encryption, 'ssl'

$mail->From = 'sender@domain.com'; // The FROM field, the address sending the email 
$mail->FromName = 'Orlie'; // The NAME field which will be displayed on arrival by the email client
$mail->addAddress('recipient@domain.net', 'BOB');     // Recipient's email address and optionally a name to identify him
$mail->isHTML(true);   // Set email to be sent as HTML, if you are planning on sending plain text email just set it to false

// The following is self explanatory
$mail->Subject = 'Email sent with Mailgun';
$mail->Body    = '<span style="color: red">Mailgun rocks</span>, thank you <em>phpmailer</em> for making emailing easy using this <b>tool!</b>';
$mail->AltBody = 'Mailgun rocks, shame you can't see the html sent with phpmailer so you're seeing this instead';

if(!$mail->send()) {  
    echo "Message hasn't been sent.";
    echo 'Mailer Error: ' . $mail->ErrorInfo . "n";
} else {
    echo "Message has been sent  n";

}
?>
                                
                            

Les paramètres d’authentification auprès du serveur SMTP de Mailgun se trouvent ici, tout comme pour Swiftmailer.

Connectez-vous à votre panneau de contrôle Mailgun, choisissez un domaine (ou le domaine sandbox inclus avec chaque nouveau compte si vous n’avez pas configuré de domaine personnalisé) et copiez-collez ces informations (Identifiant SMTP par défaut, Mot de passe par défaut) dans l’extrait de code ci-dessus, dans les champs de nom d’utilisateur et de mot de passe SMTP.

L’intégration, c’est génial

Utilisez-vous d’autres bibliothèques avec Mailgun ? Si c’est le cas, nous serions ravis de la présenter dans notre prochain article de blog PHP, avec une présentation complète et des exemples !

Bons envois !