2013-08-03 02:26:11 +04:00
|
|
|
Mailgun-PHP
|
2013-07-18 07:12:41 +04:00
|
|
|
===========
|
2013-08-20 22:10:57 +04:00
|
|
|
[![Build Status](https://travis-ci.org/mailgun/mailgun-php.png)](https://travis-ci.org/mailgun/mailgun-php)
|
2013-07-26 03:18:32 +04:00
|
|
|
|
2013-08-20 01:52:38 +04:00
|
|
|
This is the Mailgun PHP SDK. This SDK contains methods for easily interacting
|
|
|
|
with the Mailgun API.
|
|
|
|
Below are examples to get you started. For additional examples, please see our
|
|
|
|
official documentation
|
2013-08-13 23:26:34 +04:00
|
|
|
at http://documentation.mailgun.com
|
2013-07-25 10:35:12 +04:00
|
|
|
|
2013-08-21 02:01:16 +04:00
|
|
|
Current Release: 1.0
|
2013-08-03 05:15:41 +04:00
|
|
|
|
2013-07-25 10:35:12 +04:00
|
|
|
Installation
|
2013-08-03 02:34:18 +04:00
|
|
|
------------
|
2013-08-20 01:52:38 +04:00
|
|
|
To install the SDK, you will need to be using [Composer](http://getcomposer.org/)
|
|
|
|
in your project.
|
|
|
|
If you aren't using Composer yet, it's really simple! Here's how to install
|
|
|
|
composer and the Mailgun SDK.
|
2013-07-25 10:35:12 +04:00
|
|
|
|
|
|
|
```PHP
|
|
|
|
# Install Composer
|
|
|
|
curl -sS https://getcomposer.org/installer | php
|
|
|
|
|
|
|
|
# Add Mailgun as a dependency
|
2013-08-21 02:01:16 +04:00
|
|
|
php composer.phar require mailgun/mailgun-php:~1.0
|
2013-07-25 10:35:12 +04:00
|
|
|
```
|
2013-08-04 01:58:35 +04:00
|
|
|
|
2013-08-20 01:52:38 +04:00
|
|
|
For shared hosts with SSH access, you might need to run this instead (contact
|
|
|
|
your shared host for assistance):
|
2013-08-02 23:43:50 +04:00
|
|
|
```
|
|
|
|
php -d detect_unicode=Off -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"
|
|
|
|
```
|
2013-07-25 10:35:12 +04:00
|
|
|
|
2013-08-20 01:52:38 +04:00
|
|
|
Next, require Composer's autoloader, in your application, to automatically
|
|
|
|
load the Mailgun SDK in your project:
|
2013-08-04 01:58:35 +04:00
|
|
|
```PHP
|
|
|
|
require 'vendor/autoload.php';
|
2013-08-08 21:39:44 +04:00
|
|
|
use Mailgun\Mailgun;
|
2013-08-04 01:58:35 +04:00
|
|
|
```
|
|
|
|
|
2013-07-25 10:35:12 +04:00
|
|
|
Usage
|
|
|
|
-----
|
2013-08-13 23:26:34 +04:00
|
|
|
Here's how to send a message using the SDK:
|
2013-07-25 10:35:12 +04:00
|
|
|
|
|
|
|
```php
|
2013-08-08 21:39:44 +04:00
|
|
|
# First, instantiate the SDK with your API credentials and define your domain.
|
|
|
|
$mg = new Mailgun("key-example");
|
|
|
|
$domain = "example.com";
|
|
|
|
|
|
|
|
# Now, compose and send your message.
|
2013-08-14 01:35:22 +04:00
|
|
|
$mg->sendMessage($domain, array('from' => 'bob@example.com',
|
|
|
|
'to' => 'sally@example.com',
|
|
|
|
'subject' => 'The PHP SDK is awesome!',
|
|
|
|
'text' => 'It is so simple to send a message.'));
|
2013-08-13 23:26:34 +04:00
|
|
|
```
|
|
|
|
|
|
|
|
Or obtain the last 25 log items:
|
|
|
|
```php
|
|
|
|
# First, instantiate the SDK with your API credentials and define your domain.
|
|
|
|
$mg = new Mailgun("key-example");
|
|
|
|
$domain = "example.com";
|
|
|
|
|
|
|
|
# Now, issue a GET against the Logs endpoint.
|
2013-08-17 01:01:08 +04:00
|
|
|
$mg->get("$domain/log", array('limit' => 25,
|
|
|
|
'skip' => 0);
|
2013-07-25 10:35:12 +04:00
|
|
|
```
|
2013-07-25 10:53:16 +04:00
|
|
|
|
2013-08-20 04:50:21 +04:00
|
|
|
Response
|
|
|
|
--------
|
2013-08-20 01:46:34 +04:00
|
|
|
|
2013-08-20 01:52:38 +04:00
|
|
|
The results, provided by the endpoint, are returned as an object, which you
|
|
|
|
can traverse like an array.
|
2013-08-20 01:46:34 +04:00
|
|
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
```php
|
|
|
|
$mg = new Mailgun("key-example");
|
|
|
|
$domain = "example.com";
|
|
|
|
|
|
|
|
$result = $mg->get("$domain/log", array('limit' => 25,
|
2013-08-20 01:52:38 +04:00
|
|
|
'skip' => 0);
|
2013-08-20 01:46:34 +04:00
|
|
|
|
|
|
|
$httpResponseCode = $result->http_response_code;
|
|
|
|
$httpResponseBody = $result->http_response_body;
|
2013-08-20 22:10:57 +04:00
|
|
|
|
|
|
|
# Iterate through the results and echo the message IDs.
|
|
|
|
$logItems = $result->http_response_body->items;
|
|
|
|
for($logItems as $logItem){
|
|
|
|
echo $logItem->message_id . "\n";
|
|
|
|
}
|
2013-08-20 01:46:34 +04:00
|
|
|
```
|
|
|
|
|
2013-08-20 01:52:38 +04:00
|
|
|
Example Contents:
|
|
|
|
**$httpResponseCode** will contain an integer. You can find how we use HTTP response
|
|
|
|
codes in our documentation:
|
|
|
|
http://documentation.mailgun.com/api-intro.html?highlight=401#errors
|
2013-08-20 01:46:34 +04:00
|
|
|
|
2013-08-20 01:52:38 +04:00
|
|
|
**$httpResponseBody** will contain an object of the API response. In the above
|
|
|
|
example, a var_dump($result) would contain the following:
|
2013-08-20 01:46:34 +04:00
|
|
|
|
|
|
|
```
|
2013-08-21 02:01:16 +04:00
|
|
|
object(stdClass)#26 (2) {
|
2013-08-20 01:46:34 +04:00
|
|
|
["http_response_body"]=>
|
2013-08-21 02:01:16 +04:00
|
|
|
object(stdClass)#26 (2) {
|
2013-08-20 01:46:34 +04:00
|
|
|
["total_count"]=>
|
2013-08-21 02:01:16 +04:00
|
|
|
int(12)
|
2013-08-20 01:46:34 +04:00
|
|
|
["items"]=>
|
|
|
|
array(1) {
|
|
|
|
[0]=>
|
2013-08-21 02:01:16 +04:00
|
|
|
object(stdClass)#31 (5) {
|
2013-08-20 01:46:34 +04:00
|
|
|
["hap"]=>
|
2013-08-21 02:01:16 +04:00
|
|
|
string(9) "delivered"
|
2013-08-20 01:46:34 +04:00
|
|
|
["created_at"]=>
|
2013-08-21 02:01:16 +04:00
|
|
|
string(29) "Tue, 20 Aug 2013 20:24:34 GMT"
|
2013-08-20 01:46:34 +04:00
|
|
|
["message"]=>
|
2013-08-21 02:01:16 +04:00
|
|
|
string(66) "Delivered: me@samples.mailgun.org → travis@mailgunhq.com 'Hello'"
|
2013-08-20 01:46:34 +04:00
|
|
|
["type"]=>
|
2013-08-21 02:01:16 +04:00
|
|
|
string(4) "info"
|
2013-08-20 01:46:34 +04:00
|
|
|
["message_id"]=>
|
2013-08-21 02:01:16 +04:00
|
|
|
string(46) "20130820202406.24739.21973@samples.mailgun.org"
|
2013-08-20 01:46:34 +04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2013-08-21 02:01:16 +04:00
|
|
|
}
|
2013-08-20 01:46:34 +04:00
|
|
|
```
|
|
|
|
|
2013-08-20 01:52:38 +04:00
|
|
|
For usage examples on each API endpoint, head over to our official documentation
|
|
|
|
pages.
|
2013-08-08 21:39:44 +04:00
|
|
|
|
2013-08-21 08:12:44 +04:00
|
|
|
This SDK includes a [Message Builder](src/Mailgun/Messages/README.md),
|
|
|
|
[Batch Message](src/Mailgun/Messages/README.md) and [Opt-In Handler](src/Mailgun/Lists/README.md) component.
|
2013-08-03 02:38:08 +04:00
|
|
|
|
2013-08-20 01:52:38 +04:00
|
|
|
Message Builder allows you to quickly create the array of parameters, required
|
|
|
|
to send a message, by calling a methods for each parameter.
|
|
|
|
Batch Message is an extension of Message Builder, and allows you to easily send
|
|
|
|
a batch message job within a few seconds. The complexity of
|
2013-08-13 23:26:34 +04:00
|
|
|
batch messaging is eliminated!
|
|
|
|
|
2013-08-03 02:34:18 +04:00
|
|
|
Support and Feedback
|
|
|
|
--------------------
|
2013-07-25 10:53:16 +04:00
|
|
|
|
2013-08-20 01:52:38 +04:00
|
|
|
Be sure to visit the Mailgun official
|
|
|
|
[documentation website](http://documentation.mailgun.com/) for additional
|
|
|
|
information about our API.
|
2013-07-25 10:53:16 +04:00
|
|
|
|
2013-08-20 01:52:38 +04:00
|
|
|
If you find a bug, please submit the issue in Github directly.
|
|
|
|
[Mailgun-PHP Issues](https://github.com/mailgun/Mailgun-PHP/issues)
|
2013-07-25 10:53:16 +04:00
|
|
|
|
2013-08-20 01:52:38 +04:00
|
|
|
As always, if you need additional assistance, drop us a note at
|
|
|
|
[support@mailgun.com](mailto:support@mailgun.com).
|