Ceci est le SDK Mailgun PHP. Ce SDK contient des méthodes pour interagir facilement avec l'API Mailgun. Vous trouverez ci-dessous des exemples pour vous aider à démarrer. Pour des exemples supplémentaires, veuillez consulter notre documentation officielle sur http://documentation.mailgun.com
Pour installer le SDK, vous devrez utiliser Composer dans votre projet. Si vous n'utilisez pas encore compositeur, c'est vraiment simple! Voici comment installer le compositeur:
curl -sS https://getcomposer.org/installer | php
Le client API Mailgun n'est pas difficile à Guzzle, Buzz ou toute autre bibliothèque qui envoie des messages HTTP. Au lieu de cela, il utilise l'abstraction du client PSR-18. Cela vous donnera la flexibilité de choisir la mise en œuvre PSR-7 et le client HTTP que vous souhaitez utiliser.
Si vous voulez juste commencer rapidement, vous devriez exécuter la commande suivante:
composer require mailgun/mailgun-php symfony/http-client nyholm/psr7
Vous devez toujours utiliser le compositeur Autoloader dans votre application pour charger automatiquement vos dépendances. Tous les exemples ci-dessous supposent que vous avez déjà inclus cela dans votre fichier:
require ' vendor/autoload.php ' ;
use Mailgun Mailgun ;
Voici comment envoyer un message à l'aide du SDK:
// First, instantiate the SDK with your API credentials
$ mg = Mailgun :: create ( ' key-example ' ); // For US servers
$ mg = Mailgun :: create ( ' key-example ' , ' https://api.eu.mailgun.net ' ); // For EU servers
// Now, compose and send your message.
// $mg->messages()->send($domain, $params);
$ mg -> messages ()-> send ( ' example.com ' , [
' from ' => ' [email protected] ' ,
' to ' => ' [email protected] ' ,
' subject ' => ' The PHP SDK is awesome! ' ,
' text ' => ' It is so simple to send a message. '
]);
Attention: $domain
doit correspondre au domaine que vous avez configuré sur app.mailgun.com.
# Include the Autoloader (see "Libraries" for install instructions)
require ' vendor/autoload.php ' ;
use Mailgun Mailgun ;
# Instantiate the client.
$ mgClient = Mailgun :: create ( ' KEY ' , ' FULL_DOMAIN_URL ' );
$ domain = " DOMAIN " ;
# Issue the call to the client.
$ result = $ mgClient -> domains ()-> updateWebScheme ( $ domain , ' https ' );
print_r ( $ result );
# Include the Autoloader (see "Libraries" for install instructions)
require ' vendor/autoload.php ' ;
use Mailgun Mailgun ;
# Instantiate the client.
$ mgClient = Mailgun :: create ( ' KEY ' , ' FULL_DOMAIN_URL ' );
$ domain = " DOMAIN " ;
# Issue the call to the client.
$ result = $ mgClient -> domains ()-> updateWebPrefix ( $ domain , ' tracking ' );
print_r ( $ result );
MailgunModelDomainWebPrefixResponse Object
(
[message:MailgunModelDomainAbstractDomainResponse:private] => Domain web prefix updated
[domain:MailgunModelDomainAbstractDomainResponse:private] =>
[inboundDnsRecords:MailgunModelDomainAbstractDomainResponse:private] => Array
(
)
[outboundDnsRecords:MailgunModelDomainAbstractDomainResponse:private] => Array
(
)
)
<?php
# Include the Autoloader (see "Libraries" for install instructions)
require ' vendor/autoload.php ' ;
use Mailgun Mailgun ;
# Instantiate the client.
$ mgClient = Mailgun :: create ( ' KEY ' , ' ENDPOINT ' );
$ domain = " DOMAIN " ;
$ path = ' some path ' ;
$ params = [];
# Issue the call to the client.
$ resultPost = $ mgClient -> httpClient ()-> httpPost ( $ path , $ params );
$ resultGet = $ mgClient -> httpClient ()-> httpGet ( $ path , $ params );
$ resultPut = $ mgClient -> httpClient ()-> httpPut ( $ path , $ params );
$ resultDelete = $ mgClient -> httpClient ()-> httpDelete ( $ path , $ params );
//Enable Sub Account
try {
$ items = $ mgClient -> subaccounts ()-> enable ( $ id );
} catch ( Exception $ exception ) {
echo sprintf ( ' HTTP CODE - %s, ' , $ exception -> getCode ());
echo sprintf ( ' Error - %s ' , $ exception -> getMessage ());
}
//Create a new Sub Account
try {
$ items = $ mgClient -> subaccounts ()-> create ( ' some name ' );
} catch ( Exception $ exception ) {
echo sprintf ( ' HTTP CODE - %s, ' , $ exception -> getCode ());
echo sprintf ( ' Error - %s ' , $ exception -> getMessage ());
}
//Get All
try {
$ items = $ mgClient -> subaccounts ()-> index ();
print_r ( $ items -> getItems ());
} catch ( Exception $ exception ) {
echo sprintf ( ' HTTP CODE - %s, ' , $ exception -> getCode ());
echo sprintf ( ' Error - %s ' , $ exception -> getMessage ());
}
Plus détaillé, vous pouvez lire ici - https://help.mailgun.com/hc/en-us/articles/16380043681435-subactets#01h2vmhaw8cn4a7wxm6zfnsh4r
$ mgClient = Mailgun :: create (
' xxx ' ,
' yyy ' ,
$ subAccountId
);
use Mailgun HttpClient HttpClientConfigurator ;
use Mailgun Hydrator NoopHydrator ;
$ configurator = new HttpClientConfigurator ();
$ configurator -> setEndpoint ( ' http://bin.mailgun.net/aecf68de ' );
$ configurator -> setApiKey ( ' key-example ' );
$ configurator -> setSubAccountId ( $ subAccountId )
<?php
# Include the Autoloader (see "Libraries" for install instructions)
require ' vendor/autoload.php ' ;
use Mailgun Mailgun ;
# Instantiate the client.
$ mgClient = Mailgun :: create ( ' xxx ' );
$ domain = " xxx.mailgun.org " ;
$ result = $ mgClient -> metrics ()-> loadMetrics ([
' start ' => ' Wed, 11 Sep 2024 18:29:02 +0300 ' ,
' end ' => ' Wed, 25 Sep 2024 18:29:02 +0300 ' ,
' metrics ' => [
" failed_count " , " opened_count " , " sent_count " , " delivered_count "
],
' resolution ' => ' month ' ,
' precision ' => ' day ' ,
' dimensions ' => [
' time ' ,
],
' include_aggregates ' => true ,
' include_subaccounts ' => true ,
]);
print_r ( $ result -> getItems ());
Vous trouverez une documentation plus détaillée sur / doc et sur https://documentation.mailgun.com.
Le résultat d'un appel API est, par défaut, un objet de domaine. Cela permettra de comprendre facilement la réponse sans lire la documentation. On peut simplement lire les blocs DOC sur les classes de réponse. Cela offre une excellente intégration IDE.
$ mg = Mailgun :: create ( ' key-example ' );
$ dns = $ mg -> domains ()-> show ( ' example.com ' )-> getInboundDNSRecords ();
foreach ( $ dns as $ record ) {
echo $ record -> getType ();
}
Si vous préférez travailler avec un tableau plutôt qu'un objet, vous pouvez injecter l' ArrayHydrator
à la classe Mailgun.
use Mailgun Hydrator ArrayHydrator ;
$ configurator = new HttpClientConfigurator ();
$ configurator -> setApiKey ( ' key-example ' );
$ mg = new Mailgun ( $ configurator , new ArrayHydrator ());
$ data = $ mg -> domains ()-> show ( ' example.com ' );
foreach ( $ data [ ' receiving_dns_records ' ] as $ record ) {
echo isset ( $ record [ ' record_type ' ]) ? $ record [ ' record_type ' ] : null ;
}
Vous pouvez également utiliser le NoopHydrator
pour faire retourner une réponse PSR7 des appels API.
AVERTISSEMENT: Lors de l'utilisation NoopHydrator
il n'y aura aucune exception sur une réponse non 200.
Le débogage du SDK PHP peut être utile lorsque les choses ne fonctionnent pas tout à fait correctement. Pour déboguer le SDK, voici quelques suggestions:
Définissez le point de terminaison sur la postbin de Mailgun. Un postbin est un service Web qui vous permet de publier des données, que vous pouvez ensuite l'afficher via un navigateur. L'utilisation de Postbin est un moyen facile de déterminer rapidement les données que vous transmettez à l'API de Mailgun.
Étape 1 - Créez un nouveau postbin. Allez sur http://bin.mailgun.net. Le postbin générera une URL spéciale. Enregistrez cette URL.
Étape 2 - Instancier le client Mailgun à l'aide de Postbin.
Astuce: l'ID de bac sera la partie URL après bin.mailgun.net. Il sera des lettres et des nombres générés aléatoires. Par exemple, l'ID Bin dans cette URL (http://bin.mailgun.net/aecf68de) est aecf68de
.
use Mailgun HttpClient HttpClientConfigurator ;
use Mailgun Hydrator NoopHydrator ;
$ configurator = new HttpClientConfigurator ();
$ configurator -> setEndpoint ( ' http://bin.mailgun.net/aecf68de ' );
$ configurator -> setApiKey ( ' key-example ' );
$ configurator -> setDebug ( true );
$ mg = new Mailgun ( $ configurator , new NoopHydrator ());
# Now, compose and send your message.
$ mg -> messages ()-> send ( ' example.com ' , [
' from ' => ' [email protected] ' ,
' to ' => ' [email protected] ' ,
' subject ' => ' The PHP SDK is awesome! ' ,
' text ' => ' It is so simple to send a message. '
]);
Pour des exemples d'utilisation sur chaque point de terminaison de l'API, rendez-vous sur nos pages de documentation officielles.
Ce SDK comprend un constructeur de messages, un message par lots.
Message Builder vous permet de créer rapidement le tableau de paramètres, requis pour envoyer un message, en appelant des méthodes pour chaque paramètre. Le message par lots est une extension du constructeur de messages et vous permet d'envoyer facilement un travail de message par lots en quelques secondes. La complexité de la messagerie par lots est éliminée!
Si vous utilisez un framework, vous pourriez considérer ces packages de compositeurs pour faciliter l'intégration du cadre.
Ce SDK est une open source sous la licence du MIT. Il est donc maintenu par des collaborateurs et des contributeurs.
N'hésitez pas à contribuer de quelque manière que ce soit. Par exemple, vous pouvez:
dev-master
Si vous souhaitez exécuter les tests, vous devez exécuter les commandes suivantes:
git clone [email protected]:mailgun/mailgun-php.git
cd mailgun-php
composer update
composer test
Assurez-vous de visiter le site Web officiel de Mailgun pour plus d'informations sur notre API.
Si vous trouvez un bogue, veuillez soumettre directement le problème dans GitHub. Problèmes de Mailgun-PHP
Comme toujours, si vous avez besoin d'aide supplémentaire, envoyez-nous une note via votre compte sur https://app.mailgun.com/support.