これはMailgun PHP SDKです。このSDKには、Mailgun APIと簡単に相互作用する方法が含まれています。以下は、あなたを始めるための例です。その他の例については、http://documentation.mailgun.comの公式ドキュメントをご覧ください。
SDKをインストールするには、プロジェクトで作曲家を使用する必要があります。まだComposerを使用していない場合は、本当に簡単です!コンポーザーのインストール方法は次のとおりです。
curl -sS https://getcomposer.org/installer | php
Mailgun APIクライアントは、Guzzle、Buzz、またはHTTPメッセージを送信するその他のライブラリに困難ではありません。代わりに、PSR-18クライアントの抽象化を使用します。これにより、使用するPSR-7の実装とHTTPクライアントを選択する柔軟性が得られます。
すぐに開始したい場合は、次のコマンドを実行する必要があります。
composer require mailgun/mailgun-php symfony/http-client nyholm/psr7
アプリケーションでは常にComposer 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 ());
/docおよびhttps://documentation.mailgun.comでより詳細なドキュメントを見つけることができます。
API呼び出しの結果は、デフォルトではドメインオブジェクトです。これにより、ドキュメントを読んでも応答を簡単に理解できます。応答クラスのドキュメントブロックを読むことができます。これにより、優れた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
使用して、API呼び出しからPSR7応答を返してもらうこともできます。
警告: NoopHydrator
使用する場合、200以外の応答に例外はありません。
PHP SDKのデバッグは、物事が正しく機能していない場合に役立ちます。 SDKをデバッグするには、ここにいくつかの提案があります。
エンドポイントをMailgunのPostbinに設定します。 Postbinは、データを投稿できるWebサービスであり、ブラウザを介して表示できます。 Postbinを使用することは、MailgunのAPIに送信するデータをすばやく決定する簡単な方法です。
ステップ1-新しいPostbinを作成します。 http://bin.mailgun.netにアクセスしてください。 Postbinは特別なURLを生成します。そのURLを保存します。
ステップ2- Postbinを使用してMailgunクライアントをインスタンス化します。
ヒント:bin.mailgun.netの後のBin IDはURLパーツになります。ランダムに生成された文字と数字になります。たとえば、このURLのビンID(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には、メッセージビルダー、バッチメッセージが含まれています。
メッセージビルダーを使用すると、各パラメーターのメソッドを呼び出すことにより、メッセージを送信するのに必要なパラメーターの配列をすばやく作成できます。バッチメッセージはメッセージビルダーの拡張機能であり、数秒以内にバッチメッセージジョブを簡単に送信できます。バッチメッセージングの複雑さは排除されます!
フレームワークを使用している場合は、これらのコンポーザーパッケージを検討して、フレームワークの統合を容易にすることができます。
このSDKは、MITライセンスの下でオープンソースです。したがって、それは協力者と貢献者によって維持されています。
どんな方法でも自由に貢献してください。例として:
dev-master
コードを試してみますテストを実行する場合は、次のコマンドを実行する必要があります。
git clone [email protected]:mailgun/mailgun-php.git
cd mailgun-php
composer update
composer test
APIの追加情報については、Mailgun公式ドキュメントWebサイトにアクセスしてください。
バグが見つかった場合は、GitHubの問題を直接送信してください。 MailGun-PHPの問題
いつものように、追加の支援が必要な場合は、https://app.mailgun.com/supportでアカウントからメモをお送りください。