Dies ist der Mailgun PHP SDK. Dieses SDK enthält Methoden zur einfachen Interaktion mit der Mailgun -API. Im Folgenden finden Sie Beispiele, um Ihnen den Einstieg zu erleichtern. Weitere Beispiele finden Sie in unserer offiziellen Dokumentation unter http://documentation.mailgun.com
Um das SDK zu installieren, müssen Sie den Komponisten in Ihrem Projekt verwenden. Wenn Sie Komponist noch nicht verwenden, ist es wirklich einfach! So installieren Sie den Komponisten:
curl -sS https://getcomposer.org/installer | php
Der Mailgun -API -Client ist nicht schwer an Guzzle, Buzz oder eine andere Bibliothek gekoppelt, die HTTP -Nachrichten sendet. Stattdessen wird die PSR-18-Client-Abstraktion verwendet. Auf diese Weise können Sie die Flexibilität erhalten, zu wählen, welche PSR-7-Implementierung und der HTTP-Client Sie verwenden möchten.
Wenn Sie nur schnell anfangen möchten, sollten Sie den folgenden Befehl ausführen:
composer require mailgun/mailgun-php symfony/http-client nyholm/psr7
Sie sollten immer Composer Autoloader in Ihrer Anwendung verwenden, um Ihre Abhängigkeiten automatisch zu laden. Alle folgenden Beispiele gehen davon aus, dass Sie dies bereits in Ihre Datei aufgenommen haben:
require ' vendor/autoload.php ' ;
use Mailgun Mailgun ;
Hier erfahren Sie, wie Sie eine Nachricht mit dem SDK senden:
// 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. '
]);
Achtung: $domain
muss mit der Domain übereinstimmen, die Sie auf app.mailgun.com konfiguriert haben.
# 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 ());
}
Weitere Informationen finden Sie hier-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 ());
Sie finden eine detailliertere Dokumentation unter/doc und unter https://documentation.mailgun.com.
Das Ergebnis eines API -Aufrufs ist standardmäßig ein Domänenobjekt. Dies erleichtert es leicht, die Antwort zu verstehen, ohne die Dokumentation zu lesen. Man kann einfach die DOC -Blöcke in den Antwortklassen lesen. Dies bietet eine hervorragende IDE -Integration.
$ mg = Mailgun :: create ( ' key-example ' );
$ dns = $ mg -> domains ()-> show ( ' example.com ' )-> getInboundDNSRecords ();
foreach ( $ dns as $ record ) {
echo $ record -> getType ();
}
Wenn Sie lieber mit einem Array als einem Objekt arbeiten möchten, können Sie den ArrayHydrator
in die Mailgunklasse injizieren.
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 ;
}
Sie können auch den NoopHydrator
verwenden, um eine PSR7 -Antwort aus den API -Aufrufen zu erhalten.
WARNUNG: Wenn Sie NoopHydrator
verwenden, gibt es keine Ausnahmen von einer Nicht-200-Reaktion.
Das Debuggen des PHP SDK kann hilfreich sein, wenn die Dinge nicht ganz richtig funktionieren. Um das SDK zu debuggen, finden Sie hier einige Vorschläge:
Setzen Sie den Endpunkt auf Mailguns Postbin. Ein Postbin ist ein Webdienst, mit dem Sie Daten veröffentlichen können, die Sie dann über einen Browser anzeigen können. Die Verwendung von Postbin ist eine einfache Möglichkeit, schnell zu bestimmen, welche Daten Sie an die API von Mailgun übertragen.
Schritt 1 - Erstellen Sie ein neues Postbin. Gehen Sie zu http://bin.mailgun.net. Das Postbin wird eine spezielle URL erzeugen. Speichern Sie diese URL.
Schritt 2 - Instantieren Sie den Mailgun -Client mit Postbin.
Tipp: Die Bin -ID ist das URL -Teil nach bin.mailgun.net. Es wird zufällig generierte Buchstaben und Zahlen sein. Beispielsweise ist die Bin -ID in dieser 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. '
]);
Für Nutzungsbeispiele zu jedem API -Endpunkt untersuchen Sie unsere offiziellen Dokumentationsseiten.
Dieser SDK enthält einen Message Builder, Batch -Nachrichten.
Mit Message Builder können Sie schnell das Array von Parametern erstellen, das zum Senden einer Nachricht erforderlich ist, indem Sie für jeden Parameter eine Methode aufrufen. Die Batch -Nachricht ist eine Erweiterung des Message Builders und ermöglicht es Ihnen, innerhalb weniger Sekunden einen Batch -Nachrichtenjob zu senden. Die Komplexität von Batch -Messaging wird beseitigt!
Wenn Sie ein Framework verwenden, können Sie diese Komponistenpakete in Betracht ziehen, um die Rahmenintegration zu vereinfachen.
Dieser SDK ist eine Open Source unter der MIT -Lizenz. Es wird somit von Mitarbeitern und Mitwirkenden gepflegt.
Fühlen Sie sich frei, in irgendeiner Weise einen Beitrag zu leisten. Als Beispiel können Sie:
dev-master
-Code ausWenn Sie die Tests ausführen möchten, sollten Sie die folgenden Befehle ausführen:
git clone [email protected]:mailgun/mailgun-php.git
cd mailgun-php
composer update
composer test
Besuchen Sie unbedingt die mailgun offizielle Dokumentations -Website für weitere Informationen zu unserer API.
Wenn Sie einen Fehler finden, senden Sie das Problem bitte direkt in GitHub. Mailgun-Php-Probleme
Wenn Sie zusätzliche Unterstützung benötigen, geben Sie uns wie immer eine Notiz über Ihr Konto unter https://app.mailgun.com/support.