Это Mailgun PHP SDK. Этот SDK содержит методы легко взаимодействовать с API Mailgun. Ниже приведены примеры, чтобы вы начали. Для получения дополнительных примеров, пожалуйста, смотрите нашу официальную документацию по адресу http://documentation.mailgun.com
Чтобы установить SDK, вам нужно будет использовать композитор в вашем проекте. Если вы еще не используете композитор, это действительно просто! Вот как установить композитор:
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 по умолчанию является объект домена. Это облегчит понимание ответа, не читая документацию. Можно просто прочитать блоки 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, вот несколько предложений:
Установите конечную точку на почту Mailgun. Postbin - это веб -сервис, который позволяет вам публиковать данные, которые затем вы можете отобразить через браузер. Использование Postbin - это простой способ быстро определить, какие данные вы передаете API Mailgun.
Шаг 1 - Создайте новую почту. Перейдите на http://bin.mailgun.net. Postbin будет генерировать специальный URL. Сохраните этот URL.
Шаг 2 - создайте создание клиента Mailgun с помощью Postbin.
Совет: идентификатор корзины будет частью URL после bin.mailgun.net. Это будут случайные сгенерированные буквы и числа. Например, идентификатор корзины в этом 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 включает в себя строитель сообщений, пакетное сообщение.
Строитель сообщений позволяет быстро создавать массив параметров, необходимый для отправки сообщения, вызывая методы для каждого параметра. Пакетное сообщение - это расширение строителя сообщений и позволяет легко отправлять задание с пакетным сообщением в течение нескольких секунд. Сложность пакетных сообщений устраняется!
Если вы используете структуру, вы можете рассмотреть эти пакеты композиторов, чтобы облегчить интеграцию фреймворка.
Этот 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.