Este é o sdk do Mailgun PHP. Este SDK contém métodos para interagir facilmente com a API Mailgun. Abaixo estão exemplos para você começar. Para exemplos adicionais, consulte nossa documentação oficial em http://documentation.mailgun.com
Para instalar o SDK, você precisará usar o Composer em seu projeto. Se você ainda não está usando o Composer, é realmente simples! Veja como instalar o Composer:
curl -sS https://getcomposer.org/installer | php
O cliente da API do Mailgun não está duro acoplado ao Buzzle, Buzz ou qualquer outra biblioteca que envie mensagens HTTP. Em vez disso, ele usa a abstração do cliente PSR-18. Isso fornecerá a flexibilidade de escolher qual implementação do PSR-7 e cliente HTTP você deseja usar.
Se você só deseja começar rapidamente, execute o seguinte comando:
composer require mailgun/mailgun-php symfony/http-client nyholm/psr7
Você sempre deve usar o Composer AutoLoader em seu aplicativo para carregar automaticamente suas dependências. Todos os exemplos abaixo assumem que você já incluiu isso em seu arquivo:
require ' vendor/autoload.php ' ;
use Mailgun Mailgun ;
Veja como enviar uma mensagem usando o 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. '
]);
ATENÇÃO: $domain
deve corresponder ao domínio que você configurou no 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 ());
}
Mais detalhado que você pode ler aqui-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 ());
Você encontrará uma documentação mais detalhada em/doc e em https://documentation.mailgun.com.
O resultado de uma chamada de API é, por padrão, um objeto de domínio. Isso facilitará o entendimento da resposta sem ler a documentação. Pode -se apenas ler os blocos do DOC nas classes de resposta. Isso fornece uma excelente integração de IDE.
$ mg = Mailgun :: create ( ' key-example ' );
$ dns = $ mg -> domains ()-> show ( ' example.com ' )-> getInboundDNSRecords ();
foreach ( $ dns as $ record ) {
echo $ record -> getType ();
}
Se você preferir trabalhar com uma matriz do que um objeto, poderá injetar o ArrayHydrator
na 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 ;
}
Você também pode usar o NoopHydrator
para obter uma resposta do PSR7 retornada das chamadas da API.
AVISO: Ao usar NoopHydrator
não haverá exceções em uma resposta não 200.
A depuração do PHP SDK pode ser útil quando as coisas não estão funcionando bem. Para depurar o SDK, aqui estão algumas sugestões:
Defina o terminal para o Postbin do Mailgun. Um Postbin é um serviço da Web que permite publicar dados, que você pode exibi -los através de um navegador. O uso do Postbin é uma maneira fácil de determinar rapidamente quais dados você está transmitindo para a API do MailGun.
Etapa 1 - Crie um novo Postbin. Vá para http://bin.mailgun.net. O Postbin gerará um URL especial. Salve esse URL.
Etapa 2 - Instancie o cliente Mailgun usando o Postbin.
Dica: o ID do bin será a parte do URL após o bin.mailgun.net. Será letras e números gerados aleatórios. Por exemplo, o ID do bin neste URL (http://bin.mailgun.net/aecf68de) é 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 exemplos de uso em cada terminal da API, acesse nossas páginas oficiais de documentação.
Este SDK inclui um construtor de mensagens, mensagem em lote.
O Message Builder permite que você crie rapidamente a matriz de parâmetros, obrigada a enviar uma mensagem, chamando um método para cada parâmetro. A mensagem em lote é uma extensão do construtor de mensagens e permite enviar facilmente um trabalho de mensagem em lote dentro de alguns segundos. A complexidade das mensagens em lote é eliminada!
Se você estiver usando uma estrutura, poderá considerar esses pacotes de compositores para facilitar a integração da estrutura.
Este SDK é um código aberto sob a licença do MIT. É, portanto, mantido por colaboradores e colaboradores.
Sinta -se à vontade para contribuir de alguma forma. Como exemplo, você pode:
dev-master
Se você quiser executar os testes, execute os seguintes comandos:
git clone [email protected]:mailgun/mailgun-php.git
cd mailgun-php
composer update
composer test
Certifique -se de visitar o site de documentação oficial do Mailgun para obter informações adicionais sobre nossa API.
Se você encontrar um bug, envie o problema diretamente no GitHub. Problemas MailGun-PHP
Como sempre, se você precisar de assistência adicional, envie -nos uma nota através de sua conta em https://app.mailgun.com/support.