Este es el Mailgun PHP SDK. Este SDK contiene métodos para interactuar fácilmente con la API de Mailgun. A continuación hay ejemplos para comenzar. Para ver ejemplos adicionales, consulte nuestra documentación oficial en http://documentation.mailgun.com
Para instalar el SDK, deberá usar el compositor en su proyecto. Si aún no estás usando compositor, ¡es realmente simple! Aquí le mostramos cómo instalar el compositor:
curl -sS https://getcomposer.org/installer | php
El cliente de la API de Mailgun no es difícil acoplado a Gaczle, Buzz o cualquier otra biblioteca que envíe mensajes HTTP. En su lugar, utiliza la abstracción del cliente PSR-18. Esto le dará la flexibilidad de elegir qué implementación PSR-7 y cliente HTTP que desea usar.
Si solo desea comenzar rápidamente, debe ejecutar el siguiente comando:
composer require mailgun/mailgun-php symfony/http-client nyholm/psr7
Siempre debe usar el compositor Autoader en su aplicación para cargar automáticamente sus dependencias. Todos los ejemplos a continuación suponen que ya ha incluido esto en su archivo:
require ' vendor/autoload.php ' ;
use Mailgun Mailgun ;
Aquí le mostramos cómo enviar un mensaje usando el 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. '
]);
Atención: $domain
debe coincidir con el dominio que ha configurado en 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 ());
}
Más detallado que puede leer aquí: https://help.mailgun.com/hc/en-us/articles/16380043681435-subaccounts#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 ());
Encontrará una documentación más detallada en/DOC y en https://documentation.mailgun.com.
El resultado de una llamada API es, por defecto, un objeto de dominio. Esto hará que sea fácil comprender la respuesta sin leer la documentación. Uno puede leer los bloques de documentos en las clases de respuesta. Esto proporciona una excelente integración IDE.
$ mg = Mailgun :: create ( ' key-example ' );
$ dns = $ mg -> domains ()-> show ( ' example.com ' )-> getInboundDNSRecords ();
foreach ( $ dns as $ record ) {
echo $ record -> getType ();
}
Si prefiere trabajar con una matriz que un objeto, puede inyectar el ArrayHydrator
a la clase 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 ;
}
También puede usar el NoopHydrator
para que se devuelva una respuesta PSR7 de las llamadas API.
ADVERTENCIA: Cuando se use NoopHydrator
no habrá excepciones en una respuesta no 200.
La depuración del PHP SDK puede ser útil cuando las cosas no funcionan bien. Para depurar el SDK, aquí hay algunas sugerencias:
Establezca el punto final en el postbin de Mailgun. Un postbin es un servicio web que le permite publicar datos, que luego puede mostrarlos a través de un navegador. El uso de Postbin es una manera fácil de determinar rápidamente qué datos transmite a la API de Mailgun.
Paso 1: cree un nuevo postbin. Vaya a http://bin.mailgun.net. El postbin generará una URL especial. Guarde esa URL.
Paso 2: instanciar al cliente de Mailgun con PostBin.
Consejo: La ID de bin será la parte de URL después de bin.mailgun.net. Serán letras y números generados aleatorios. Por ejemplo, la ID de bin en esta URL (http://bin.mailgun.net/aecf68de) es 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. '
]);
Para ejemplos de uso en cada punto final de la API, diríjase a nuestras páginas de documentación oficiales.
Este SDK incluye un constructor de mensajes, mensaje por lotes.
Message Builder le permite crear rápidamente la matriz de parámetros, requerido para enviar un mensaje, llamando a un métodos para cada parámetro. El mensaje por lotes es una extensión de Message Builder y le permite enviar fácilmente un trabajo de mensaje por lotes en unos segundos. ¡Se elimina la complejidad de los mensajes por lotes!
Si está utilizando un marco, puede considerar estos paquetes compositor para facilitar la integración del marco.
Este SDK es un código abierto bajo la licencia MIT. Es, por lo tanto, mantenido por colaboradores y contribuyentes.
Siéntase libre de contribuir de cualquier manera. Como ejemplo, puede:
dev-master
Si desea ejecutar las pruebas, debe ejecutar los siguientes comandos:
git clone [email protected]:mailgun/mailgun-php.git
cd mailgun-php
composer update
composer test
Asegúrese de visitar el sitio web de documentación oficial de Mailgun para obtener información adicional sobre nuestra API.
Si encuentra un error, envíe el problema en GitHub directamente. Problemas de Mailgun-PHP
Como siempre, si necesita ayuda adicional, envíenos una nota a través de su cuenta en https://app.mailgun.com/support.