นี่คือ Mailgun PHP SDK SDK นี้มีวิธีการโต้ตอบกับ MailGun API ได้อย่างง่ายดาย ด้านล่างนี้เป็นตัวอย่างที่จะเริ่มต้น สำหรับตัวอย่างเพิ่มเติมโปรดดูเอกสารอย่างเป็นทางการของเราที่ http://documentation.mailgun.com
ในการติดตั้ง SDK คุณจะต้องใช้นักแต่งเพลงในโครงการของคุณ หากคุณยังไม่ได้ใช้นักแต่งเพลงมันง่ายจริงๆ! นี่คือวิธีการติดตั้งนักแต่งเพลง:
curl -sS https://getcomposer.org/installer | phpไคลเอนต์ MailGun API นั้นไม่ยากกับ Guzzle, Buzz หรือ Library อื่น ๆ ที่ส่งข้อความ HTTP แต่ใช้สิ่งที่เป็นนามธรรมไคลเอนต์ PSR-18 สิ่งนี้จะทำให้คุณมีความยืดหยุ่นในการเลือกการใช้งาน PSR-7 และไคลเอนต์ HTTP ที่คุณต้องการใช้
หากคุณต้องการเริ่มต้นอย่างรวดเร็วคุณควรเรียกใช้คำสั่งต่อไปนี้:
composer require mailgun/mailgun-php symfony/http-client nyholm/psr7คุณควรใช้นักแต่งเพลง AutoLoader ในแอปพลิเคชันของคุณเพื่อโหลดการอ้างอิงของคุณโดยอัตโนมัติ ตัวอย่างทั้งหมดด้านล่างถือว่าคุณได้รวมไว้ในไฟล์ของคุณแล้ว:
require ' vendor/autoload.php ' ;
use Mailgun Mailgun ;นี่คือวิธีการส่งข้อความโดยใช้ 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. '
]); ความสนใจ: $domain ต้องตรงกับโดเมนที่คุณกำหนดค่าบน 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 ());
}รายละเอียดเพิ่มเติมคุณสามารถอ่านได้ที่นี่-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 ());คุณจะพบเอกสารรายละเอียดเพิ่มเติมที่/เอกสารและบน https://documentation.mailgun.com
ผลลัพธ์ของการเรียก API คือโดยค่าเริ่มต้นวัตถุโดเมน สิ่งนี้จะทำให้ง่ายต่อการเข้าใจการตอบสนองโดยไม่ต้องอ่านเอกสาร หนึ่งสามารถอ่านบล็อก DOC ในคลาสการตอบกลับ สิ่งนี้ให้การรวม IDE ที่ยอดเยี่ยม
$ mg = Mailgun :: create ( ' key-example ' );
$ dns = $ mg -> domains ()-> show ( ' example.com ' )-> getInboundDNSRecords ();
foreach ( $ dns as $ record ) {
echo $ record -> getType ();
} หากคุณต้องการทำงานกับอาร์เรย์มากกว่าวัตถุที่คุณสามารถฉีด ArrayHydrator ไปยังคลาส 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 ;
} นอกจากนี้คุณยังสามารถใช้ NoopHydrator เพื่อรับการตอบกลับ PSR7 ที่ส่งคืนจากการโทร API
คำเตือน: เมื่อใช้ NoopHydrator จะไม่มีข้อยกเว้นในการตอบสนองที่ไม่ใช่ 200
การดีบัก PHP SDK จะเป็นประโยชน์เมื่อสิ่งต่าง ๆ ไม่ถูกต้อง ในการดีบัก SDK นี่คือคำแนะนำบางอย่าง:
ตั้งค่าจุดสิ้นสุดเป็น postbin ของ Mailgun Postbin เป็นบริการเว็บที่ให้คุณโพสต์ข้อมูลซึ่งคุณสามารถแสดงผ่านเบราว์เซอร์ การใช้ Postbin เป็นวิธีที่ง่ายในการกำหนดข้อมูลที่คุณกำลังส่งไปยัง API ของ Mailgun อย่างรวดเร็ว
ขั้นตอนที่ 1 - สร้าง postbin ใหม่ ไปที่ http://bin.mailgun.net postbin จะสร้าง URL พิเศษ บันทึก URL นั้น
ขั้นตอนที่ 2 - อินสแตนซ์ไคลเอนต์ Mailgun โดยใช้ Postbin
เคล็ดลับ: Bin ID จะเป็นส่วน URL หลังจาก bin.mailgun.net มันจะเป็นตัวอักษรและตัวเลขที่สร้างขึ้นแบบสุ่ม ตัวอย่างเช่น BIN ID ใน 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. '
]);สำหรับตัวอย่างการใช้งานในแต่ละจุดสิ้นสุด API ตรงไปที่หน้าเอกสารอย่างเป็นทางการของเรา
SDK นี้มีตัวสร้างข้อความข้อความแบทช์
ตัวสร้างข้อความช่วยให้คุณสร้างอาร์เรย์ของพารามิเตอร์ได้อย่างรวดเร็วซึ่งจำเป็นต้องส่งข้อความโดยเรียกใช้วิธีการสำหรับแต่ละพารามิเตอร์ Batch Message เป็นส่วนขยายของตัวสร้างข้อความและช่วยให้คุณสามารถส่งงานข้อความแบทช์ได้อย่างง่ายดายภายในไม่กี่วินาที ความซับซ้อนของการส่งข้อความแบบแบทช์ถูกกำจัด!
หากคุณใช้เฟรมเวิร์กคุณอาจพิจารณาแพ็คเกจนักแต่งเพลงเหล่านี้เพื่อให้การรวมเฟรมเวิร์กง่ายขึ้น
SDK นี้เป็นโอเพ่นซอร์สภายใต้ใบอนุญาต MIT ดังนั้นจึงได้รับการดูแลโดยผู้ทำงานร่วมกันและผู้มีส่วนร่วม
อย่าลังเลที่จะมีส่วนร่วมในทางใดทางหนึ่ง เป็นตัวอย่างที่คุณอาจ:
dev-masterหากคุณต้องการเรียกใช้การทดสอบคุณควรเรียกใช้คำสั่งต่อไปนี้:
git clone [email protected]:mailgun/mailgun-php.git
cd mailgun-php
composer update
composer test
อย่าลืมเยี่ยมชมเว็บไซต์เอกสารอย่างเป็นทางการของ MailGun สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ API ของเรา
หากคุณพบข้อผิดพลาดโปรดส่งปัญหาใน GitHub โดยตรง ปัญหา MailGun-Php
เช่นเคยหากคุณต้องการความช่วยเหลือเพิ่มเติมให้ส่งบันทึกผ่านบัญชีของคุณที่ https://app.mailgun.com/support