Product
Le SDK PHP : le premier d’une longue série de SDK officiels Mailgun
Aujourd’hui, nous avons le plaisir d’annoncer qu’il est encore plus facile pour l’équipe de développement PHP d’envoyer des messages avec Mailgun ! Ces dernières semaines, nous avons travaillé sans relâche sur des SDK pour l’API de Mailgun. Le SDK vous permet d’interagir facilement avec notre API en éliminant tout le code standard nécessaire pour interagir avec un service web HTTP. Aujourd’hui, nous publions la version PHP du SDK. D’autres langages suivront bientôt.
Si vous ne connaissez pas le fonctionnement d’un SDK, examinons d’abord ce qui est requis pour envoyer un message à l’aide de la bibliothèque HTTP CURL standard pour PHP.
Envoi d’un message avec CURL :
function send_simple_message() {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, 'api:key-example');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_URL,
'https://api.mailgun.net/v2/samples.mailgun.org/messages');
curl_setopt($ch, CURLOPT_POSTFIELDS,
array('from' => 'Dwight Schrute ',
'to' => 'Michael Scott ',
'subject' => 'The Printer Caught Fire',
'text' => 'We have a problem.'));
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
echo send_simple_message();
Le code ci-dessus enverra un message à l’aide de l’API de Mailgun. Cependant, il contient beaucoup de code qui, bien qu’important, est complexe, et à moins d’être spécialiste de CURL, il pourrait être assez déroutant.
Grâce à notre nouveau SDK, nous avons réussi à réduire la quantité de code requise à seulement quelques lignes.
Envoi d’un message avec le SDK PHP de Mailgun :
# First, instantiate the SDK with your API credentials and define your domain.
$mgClient = new Mailgun("key-example");
$domain = "example.com";
# Now, compose and send your message.
$mgClient->sendMessage($domain,
array('from' => 'Dwight Schrute ',
'to' => 'Michael Scott ',
'subject' => 'The Printer Caught Fire',
'text' => 'We have a problem.'));
Obtention des logs avec le SDK PHP de Mailgun :
# First, instantiate the SDK with your API credentials and
define your domain.
$mgClient = new Mailgun('key-3ax6xnjp29jd6fds4gc373sgvjxteol0');
$domain = 'samples.mailgun.org';
# Now, issue a get against the "log" resource URL.
$result = $mgClient->get("$domain/log", array('limit' => 5, 'skip' => 0));
Toutes les actions HTTP renvoient un objet de réponse avec lequel vous pouvez interagir facilement.
# Obtain the HTTP response code. (e.g. 200)
$responseCode = $result->http_response_code;
# Obtain the total count of results provided by the query.
$responseBody = $result->http_response_body->total_count;
# Iterate through the results and echo the message IDs.
$logItems = $result->http_response_body->items;
for($logItems as $logItem){
echo $logItem->message_id . "n";
}
Si vous souhaitez commencer à utiliser le SDK dès aujourd’hui, le code est disponible sous forme de dépôt public sur Github (mailgun-php). Vous y trouverez des solutions pour réaliser tout ce que vous pouvez faire avec l’API de Mailgun. Pour d’autres exemples d’utilisation, consultez le fichier README dans le dépôt. Mais nous ne nous sommes pas arrêtés là… Nous avons créé quelques utilitaires dans le SDK.
Message Builder
La création d’un tableau de paramètres peut s’avérer difficile pour certaines implémentations de code. Nous avons donc inclus une classe qui vous permet d’effectuer des appels de méthode qui construisent automatiquement un tableau de paramètres de message correctement formé.
Envoi d’un message avec le SDK PHP de Mailgun et Message Builder :
# First, instantiate the SDK with your API credentials and define
your domain.
$mgClient = new Mailgun("key-example");
$domain = "example.com";
# Next, instantiate a Message Builder object from the SDK.
$msgBldr = $mgClient->MessageBuilder();
# Define the from address.
$msgBldr->setFromAddress("dwight@example.com",
array("first"=>"Dwight", "last" => "Schrute"));
# Define a to recipient.
$msgBldr->addToRecipient("michael@example.com",
array("first" => "Michael", "last" => "Scott"));
# Define a cc recipient.
$msgBldr->addCcRecipient("pam@example.com",
array("first" => "Pam", "last" => "Beesly"));
# Define the subject.
$msgBldr->setSubject("Help!");
# Define the body of the message.
$msgBldr->setTextBody("The printer is on fire.");
# Other Optional Parameters.
$msgBldr->addCampaignId("Sabre-Printer-Fire");
$msgBldr->addCustomHeader("Customer-Id", "12345");
$msgBldr->addAttachment("@/sabre.jpg");
$msgBldr->setDeliveryTime("tomorrow 8:00AM", "PST");
# Finally, send the message.
$mgClient->post('{$domain}/messages', $msgBldr->getMessage());
Pour obtenir une liste de toutes les fonctions disponibles, consultez la liste sur Github.
Batch Message
En plus de Message Builder, nous proposons Batch Message. Cette classe vous permet de créer un message et de soumettre un modèle de message par lots, jusqu’à 1 000 destinataires par envoi. L’avantage de cette classe est que le décompte des destinataires est surveillé et soumettra automatiquement le message au point de terminaison lorsque vous aurez ajouté le 1 000e destinataire. Cela signifie que vous pouvez créer votre message et commencer à itérer dans votre base de données. Oubliez l’envoi du message, le SDK se chargera de la publication sur l’API lorsque cela sera nécessaire.
Envoi d’un message avec le SDK PHP de Mailgun et Batch Message :
# First, instantiate the SDK with your API credentials and define
your domain.
$mgClient = new Mailgun("key-example");
$domain = "example.com";
# Next, instantiate a Message Builder object from the SDK, pass in your
sending domain.
$batchMsg = $mgClient->BatchMessage($domain);
# Define the from address.
$batchMsg->setFromAddress("dwight@example.com",
array("first"=>"Dwight", "last" => "Schrute"));
# Define the subject.
$batchMsg->setSubject("Help!");
# Define the body of the message.
$batchMsg->setTextBody("The printer is on fire!");
# Next, let's add a few recipients to the batch job.
$batchMsg->addToRecipient("pam@example.com",
array("first" => "pam", "last" => "Beesly"));
$batchMsg->addToRecipient("jim@example.com",
array("first" => "Jim", "last" => "Halpert"));
$batchMsg->addToRecipient("andy@example.com",
array("first" => "Andy", "last" => "Bernard"));
...etc...etc...
// After 1,000 recipeints, Batch Message will automatically post your message
to the messages endpoint.
// Call finalize() to send any remaining recipients still in the buffer.
$batchMsg->finalize();
Comme vous pouvez le constater, Batch Message étend en fait Message Builder. Toutes les fonctions disponibles dans Message Builder sont disponibles dans Batch Message. Consultez la documentation complète sur Github.
Opt-In Handler
Enfin, nous avons créé un gestionnaire de double opt-in simple pour vous aider à générer des liens d’opt-in uniques. Le gestionnaire d’opt-in utilise également notre service de validation d’adresses gratuit pour valider l’exactitude des adresses email.
Le flux typique d’utilisation de cette classe serait le suivant :
Le destinataire demande à s’inscrire -> [Valider l’adresse du destinataire] -> [Générer un lien d’opt-in] -> [Envoyer le lien d’opt-in au destinataire par email]
Le destinataire clique sur le lien d’opt-in -> [Valider le lien d’opt-in] -> [Inscrire l’utilisateur] -> [Envoyer la confirmation finale]
Il est préférable d’utiliser cette classe pour les formulaires d’abonnement de votre site Web, vous aurez donc besoin d’un serveur Web accessible sur Internet pour gérer le clic sur le lien de validation.
Faites-nous part de ce que vous en pensez. Y a-t-il autre chose que vous aimeriez voir dans le SDK ? Ou quelque chose que vous adorez. Nous serions ravis de connaître votre avis !
Bons envois,
L’équipe Mailgun