mailgun-php/src/Mailgun/Mailgun.php

88 lines
2.3 KiB
PHP
Raw Normal View History

<?PHP
namespace Mailgun;
2013-08-13 23:26:34 +04:00
require 'Constants/Constants.php';
2013-08-08 04:41:14 +04:00
use Mailgun\Messages\Messages;
2013-08-13 23:26:34 +04:00
use Mailgun\Connection\Exceptions;
use Mailgun\Connection\RestClient;
2013-08-08 04:41:14 +04:00
use Mailgun\Messages\BatchMessage;
2013-08-16 22:20:01 +04:00
use Mailgun\Lists\OptInHandler;
2013-08-08 04:41:14 +04:00
use Mailgun\Messages\MessageBuilder;
2013-08-13 23:26:34 +04:00
/*
This class is the base class for the Mailgun SDK.
See the official documentation for usage instructions.
*/
class Mailgun{
2013-08-08 04:41:14 +04:00
private $apiKey;
protected $workingDomain;
protected $restClient;
2013-08-13 23:26:34 +04:00
public function __construct($apiKey = null, $apiEndpoint = "api.mailgun.net", $apiVersion = "v2"){
$this->restClient = new RestClient($apiKey, $apiEndpoint, $apiVersion);
}
2013-08-08 04:41:14 +04:00
2013-08-13 23:26:34 +04:00
public function sendMessage($workingDomain, $postData, $postFiles = array()){
/*
This function allows the sending of a fully formed message OR a custom
MIME string. If sending MIME, the string must be passed in to the 3rd
position of the function call.
*/
if(is_array($postFiles)){
return $this->post("$workingDomain/messages", $postData, $postFiles);
}
else if(is_string($postFiles)){
try{
$tempFile = tempnam(sys_get_temp_dir(), "MG_TMP_MIME");
$fileHandle = fopen($tempFile, "w");
fwrite($fileHandle, $postFiles);
}
catch(Exception $ex){
throw $ex;
}
$result = $this->post("$workingDomain/messages.mime", $postData, array("message" => $tempFile));
return $result;
fclose($fileName);
unlink($fileName);
}
else{
throw new MissingRequiredMIMEParameters(EXCEPTION_MISSING_REQUIRED_MIME_PARAMETERS);
}
}
2013-08-08 04:41:14 +04:00
public function post($endpointUrl, $postData = array(), $files = array()){
2013-08-13 23:26:34 +04:00
return $this->restClient->post($endpointUrl, $postData, $files);
2013-08-08 04:41:14 +04:00
}
public function get($endpointUrl, $queryString = array()){
2013-08-13 23:26:34 +04:00
return $this->restClient->get($endpointUrl, $queryString);
2013-08-08 04:41:14 +04:00
}
public function delete($endpointUrl){
2013-08-13 23:26:34 +04:00
return $this->restClient->delete($endpointUrl);
2013-08-08 04:41:14 +04:00
}
public function put($endpointUrl, $putData){
2013-08-13 23:26:34 +04:00
return $this->restClient->put($endpointUrl, $putData);
2013-08-08 04:41:14 +04:00
}
public function MessageBuilder(){
return new MessageBuilder();
}
2013-08-16 22:20:01 +04:00
public function OptInHandler(){
return new OptInHandler();
}
2013-08-08 21:39:44 +04:00
public function BatchMessage($workingDomain, $autoSend = true){
return new BatchMessage($this->restClient, $workingDomain, $autoSend);
2013-08-08 04:41:14 +04:00
}
}
?>