diff options
Diffstat (limited to 'Postman/Postman-Mail/sendgrid-php-3.2.0/lib/SendGrid.php')
-rw-r--r-- | Postman/Postman-Mail/sendgrid-php-3.2.0/lib/SendGrid.php | 156 |
1 files changed, 0 insertions, 156 deletions
diff --git a/Postman/Postman-Mail/sendgrid-php-3.2.0/lib/SendGrid.php b/Postman/Postman-Mail/sendgrid-php-3.2.0/lib/SendGrid.php deleted file mode 100644 index 5b775b2..0000000 --- a/Postman/Postman-Mail/sendgrid-php-3.2.0/lib/SendGrid.php +++ /dev/null @@ -1,156 +0,0 @@ -<?php - -class SendGrid -{ - const VERSION = '3.2.0'; - - protected - $namespace = 'SendGrid', - $headers = array('Content-Type' => 'application/json'), - $client, - $options; - - public - $apiUser, - $apiKey, - $url, - $endpoint, - $version = self::VERSION; - - public function __construct($apiUserOrKey, $apiKeyOrOptions = null, $options = array()) - { - // Check if given a username + password or api key - if (is_string($apiKeyOrOptions)) { - // Username and password - $this->apiUser = $apiUserOrKey; - $this->apiKey = $apiKeyOrOptions; - $this->options = $options; - } elseif (is_array($apiKeyOrOptions) || $apiKeyOrOptions === null) { - // API key - $this->apiKey = $apiUserOrKey; - $this->apiUser = null; - - // With options - if (is_array($apiKeyOrOptions)) { - $this->options = $apiKeyOrOptions; - } - } else { - // Won't be thrown? - throw new InvalidArgumentException('Need a username + password or api key!'); - } - - $this->options['turn_off_ssl_verification'] = (isset($this->options['turn_off_ssl_verification']) && $this->options['turn_off_ssl_verification'] == true); - if (!isset($this->options['raise_exceptions'])) { - $this->options['raise_exceptions'] = true; - } - $protocol = isset($this->options['protocol']) ? $this->options['protocol'] : 'https'; - $host = isset($this->options['host']) ? $this->options['host'] : 'api.sendgrid.com'; - $port = isset($this->options['port']) ? $this->options['port'] : ''; - - $this->url = isset($this->options['url']) ? $this->options['url'] : $protocol . '://' . $host . ($port ? ':' . $port : ''); - $this->endpoint = isset($this->options['endpoint']) ? $this->options['endpoint'] : '/api/mail.send.json'; - - $this->client = $this->prepareHttpClient(); - } - - /** - * Prepares the HTTP client - * - * @return \Guzzle\Http\Client - */ - private function prepareHttpClient() - { - $guzzleOption = array( - 'request.options' => array( - 'verify' => !$this->options['turn_off_ssl_verification'], - 'exceptions' => (isset($this->options['enable_guzzle_exceptions']) && $this->options['enable_guzzle_exceptions'] == true) - ) - ); - - // Using api key - if ($this->apiUser === null) { - $guzzleOption['request.options']['headers'] = array('Authorization' => 'Bearer ' . $this->apiKey); - } - - // Using http proxy - if (isset($this->options['proxy'])) { - $guzzleOption['request.options']['proxy'] = $this->options['proxy']; - } - - $client = new \Guzzle\Http\Client($this->url, $guzzleOption); - $client->setUserAgent('sendgrid/' . $this->version . ';php'); - - return $client; - } - - /** - * @return array The protected options array - */ - public function getOptions() - { - return $this->options; - } - - /** - * Makes a post request to SendGrid to send an email - * - * @param SendGrid\Email $email Email object built - * - * @throws SendGrid\Exception if the response code is not 200 - * @return stdClass SendGrid response object - */ - public function send(SendGrid\Email $email) - { - $form = $email->toWebFormat(); - - // Using username password - if ($this->apiUser !== null) { - $form['api_user'] = $this->apiUser; - $form['api_key'] = $this->apiKey; - } - - $response = $this->postRequest($this->endpoint, $form); - - if ($response->code != 200 && $this->options['raise_exceptions']) { - throw new SendGrid\Exception($response->raw_body, $response->code); - } - - return $response; - } - - /** - * Makes the actual HTTP request to SendGrid - * - * @param $endpoint string endpoint to post to - * @param $form array web ready version of SendGrid\Email - * - * @return SendGrid\Response - */ - public function postRequest($endpoint, $form) - { - $req = $this->client->post($endpoint, null, $form); - - $res = $req->send(); - - $response = new SendGrid\Response($res->getStatusCode(), $res->getHeaders(), $res->getBody(true), $res->json()); - - return $response; - } - - public static function register_autoloader() - { - spl_autoload_register(array('SendGrid', 'autoloader')); - } - - public static function autoloader($class) - { - // Check that the class starts with 'SendGrid' - if ($class == 'SendGrid' || stripos($class, 'SendGrid\\') === 0) { - $file = str_replace('\\', '/', $class); - - if (file_exists(dirname(__FILE__) . '/' . $file . '.php')) { - require_once(dirname(__FILE__) . '/' . $file . '.php'); - } - } - } -} |