Ini adalah Mailgun PHP SDK. SDK ini berisi metode untuk dengan mudah berinteraksi dengan MailGun API. Di bawah ini adalah contoh untuk membantu Anda memulai. Untuk contoh tambahan, silakan lihat dokumentasi resmi kami di http://documentation.mailgun.com
Untuk menginstal SDK, Anda harus menggunakan komposer dalam proyek Anda. Jika Anda belum menggunakan komposer, itu sangat sederhana! Inilah cara menginstal komposer:
curl -sS https://getcomposer.org/installer | php
Klien API Mailgun tidak keras digabungkan ke Guzzle, Buzz atau perpustakaan lain yang mengirim pesan HTTP. Sebaliknya, ia menggunakan abstraksi klien PSR-18. Ini akan memberi Anda fleksibilitas untuk memilih implementasi PSR-7 apa dan klien HTTP yang ingin Anda gunakan.
Jika Anda hanya ingin memulai dengan cepat, Anda harus menjalankan perintah berikut:
composer require mailgun/mailgun-php symfony/http-client nyholm/psr7
Anda harus selalu menggunakan Autoloader Composer di aplikasi Anda untuk secara otomatis memuat dependensi Anda. Semua contoh di bawah ini menganggap Anda sudah memasukkan ini ke dalam file Anda:
require ' vendor/autoload.php ' ;
use Mailgun Mailgun ;
Inilah cara mengirim pesan menggunakan 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. '
]);
Perhatian: $domain
harus cocok dengan domain yang telah Anda konfigurasi di 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 ());
}
Lebih detail Anda dapat membaca di sini-https://help.mailgun.com/hc/en-us/articles/16380043681435-subaccount#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 ());
Anda akan menemukan dokumentasi yang lebih rinci di/dokumen dan di https://documentation.mailgun.com.
Hasil panggilan API, secara default, objek domain. Ini akan memudahkan untuk memahami respons tanpa membaca dokumentasi. Seseorang hanya dapat membaca blok DOC di kelas respons. Ini memberikan integrasi IDE yang sangat baik.
$ mg = Mailgun :: create ( ' key-example ' );
$ dns = $ mg -> domains ()-> show ( ' example.com ' )-> getInboundDNSRecords ();
foreach ( $ dns as $ record ) {
echo $ record -> getType ();
}
Jika Anda lebih suka bekerja dengan array daripada objek, Anda dapat menyuntikkan ArrayHydrator
ke kelas 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 ;
}
Anda juga dapat menggunakan NoopHydrator
untuk mendapatkan respons PSR7 yang dikembalikan dari panggilan API.
PERINGATAN: Saat menggunakan NoopHydrator
tidak akan ada pengecualian pada respons non-200.
Debugging PHP SDK dapat membantu ketika hal -hal tidak berfungsi dengan baik. Untuk men -debug SDK, berikut adalah beberapa saran:
Atur titik akhir ke postbin Mailgun. Postbin adalah layanan web yang memungkinkan Anda memposting data, yang kemudian Anda dapat menampilkannya melalui browser. Menggunakan Postbin adalah cara mudah untuk menentukan data apa yang Anda kirimkan ke API Mailgun dengan cepat.
Langkah 1 - Buat postbin baru. Pergi ke http://bin.mailgun.net. Postbin akan menghasilkan URL khusus. Simpan URL itu.
Langkah 2 - Instantiate klien MailGun menggunakan postbin.
Kiat: ID bin akan menjadi bagian URL setelah bin.mailgun.net. Ini akan menjadi huruf dan angka yang dihasilkan secara acak. Misalnya, ID bin dalam url ini (http://bin.mailgun.net/aecf68de) adalah 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. '
]);
Untuk contoh penggunaan pada setiap titik akhir API, kunjungi halaman dokumentasi resmi kami.
SDK ini termasuk pembangun pesan, pesan batch.
Pesan pembangun memungkinkan Anda untuk dengan cepat membuat array parameter, diperlukan untuk mengirim pesan, dengan memanggil metode untuk setiap parameter. Pesan Batch adalah perpanjangan dari pembuat pesan, dan memungkinkan Anda untuk dengan mudah mengirim pekerjaan pesan batch dalam beberapa detik. Kompleksitas pesan batch dihilangkan!
Jika Anda menggunakan kerangka kerja, Anda dapat mempertimbangkan paket komposer ini untuk membuat integrasi kerangka kerja lebih mudah.
SDK ini adalah sumber terbuka di bawah lisensi MIT. Dengan demikian, dikelola oleh kolaborator dan kontributor.
Jangan ragu untuk berkontribusi dengan cara apa pun. Sebagai contoh Anda mungkin:
dev-master
Jika Anda ingin menjalankan tes, Anda harus menjalankan perintah berikut:
git clone [email protected]:mailgun/mailgun-php.git
cd mailgun-php
composer update
composer test
Pastikan untuk mengunjungi situs web dokumentasi resmi MailGun untuk informasi tambahan tentang API kami.
Jika Anda menemukan bug, silakan kirimkan masalah di GitHub secara langsung. Masalah MailGun-PHP
Seperti biasa, jika Anda membutuhkan bantuan tambahan, kirimkan catatan melalui akun Anda di https://app.mailgun.com/support.