-
Notifications
You must be signed in to change notification settings - Fork 625
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #604 from sendgrid/v7
PHP SDK v7
- Loading branch information
Showing
145 changed files
with
9,404 additions
and
3,440 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,9 +12,9 @@ | |
|
||
**This library allows you to quickly and easily use the SendGrid Web API v3 via PHP.** | ||
|
||
Version 5.X.X of this library provides full support for all SendGrid [Web API v3](https://sendgrid.com/docs/API_Reference/Web_API_v3/index.html) endpoints, including the new [v3 /mail/send](https://sendgrid.com/blog/introducing-v3mailsend-sendgrids-new-mail-endpoint). | ||
Version 7.X.X of this library provides full support for all SendGrid [Web API v3](https://sendgrid.com/docs/API_Reference/Web_API_v3/index.html) endpoints, including the new [v3 /mail/send](https://sendgrid.com/blog/introducing-v3mailsend-sendgrids-new-mail-endpoint). | ||
|
||
This library represents the beginning of a new path for SendGrid. We want this library to be community driven and SendGrid led. We need your help to realize this goal. To help make sure we are building the right things in the right order, we ask that you create [issues](https://github.com/sendgrid/sendgrid-php/issues) and [pull requests](https://github.com/sendgrid/sendgrid-php/blob/master/CONTRIBUTING.md) or simply upvote or comment on existing issues or pull requests. | ||
We want this library to be community driven and SendGrid led. Your help is needed to realize this goal. To help make sure we are building the right things in the right order, we ask that you create [issues](https://github.com/sendgrid/sendgrid-php/issues) and [pull requests](https://github.com/sendgrid/sendgrid-php/blob/master/CONTRIBUTING.md) or simply upvote or comment on existing issues or pull requests. | ||
|
||
Please browse the rest of this README for further details. | ||
|
||
|
@@ -24,8 +24,8 @@ We appreciate your continued support, thank you! | |
|
||
* [Installation](#installation) | ||
* [Quick Start](#quick-start) | ||
* [Usage](#usage) | ||
* [Use Cases](#use-cases) | ||
* [Usage](#usage) | ||
* [Announcements](#announcements) | ||
* [Roadmap](#roadmap) | ||
* [How to Contribute](#contribute) | ||
|
@@ -38,7 +38,7 @@ We appreciate your continued support, thank you! | |
|
||
## Prerequisites | ||
|
||
- PHP version 5.6 or 7.0 | ||
- PHP version 5.6, 7.0, 7.1 or 7.2 | ||
- The SendGrid service, starting at the [free level](https://sendgrid.com/free?source=sendgrid-php) | ||
|
||
## Setup Environment Variables | ||
|
@@ -57,167 +57,125 @@ source ./.env | |
|
||
## Install Package | ||
|
||
Add SendGrid to your `composer.json` file. If you are not using [Composer](http://getcomposer.org), you should be. It's an excellent way to manage dependencies in your PHP application. | ||
Add SendGrid to your `composer.json` file. If you are not using [Composer](http://getcomposer.org), we highly recommend it. It's an excellent way to manage dependencies in your PHP application. | ||
|
||
```json | ||
{ | ||
"require": { | ||
"sendgrid/sendgrid": "~6.2" | ||
"sendgrid/sendgrid": "~7" | ||
} | ||
} | ||
``` | ||
|
||
#### Alternative: Install package from zip | ||
|
||
If you are not using Composer, simply download and install the **[latest packaged release of the library as a zip](https://github.com/sendgrid/sendgrid-php/releases/download/v6.2.0/sendgrid-php.zip)**. | ||
If you are not using Composer, simply download and install the **[latest packaged release of the library as a zip](https://github.com/sendgrid/sendgrid-php/releases/download/v7.0.0/sendgrid-php.zip)**. | ||
|
||
[**⬇︎ Download Packaged Library ⬇︎**](https://github.com/sendgrid/sendgrid-php/releases/download/v6.2.0/sendgrid-php.zip) | ||
[**⬇︎ Download Packaged Library ⬇︎**](https://github.com/sendgrid/sendgrid-php/releases/download/v7.0.0/sendgrid-php.zip) | ||
|
||
Previous versions of the library can be found in the [version index](https://sendgrid-open-source.s3.amazonaws.com/index.html) or downloaded directly from GitHub. | ||
Previous versions of the library can be found in the [version index](https://sendgrid-open-source.s3.amazonaws.com/index.html) or downloaded directly from [GitHub](https://github.com/sendgrid/sendgrid-php/releases). | ||
|
||
## Dependencies | ||
|
||
- The SendGrid Service, starting at the [free level](https://sendgrid.com/free?source=sendgrid-php) | ||
- [php-HTTP-Client](https://github.com/sendgrid/php-http-client) | ||
- The dependency free [php-http-client](https://github.com/sendgrid/php-http-client) | ||
|
||
<a name="quick-start"></a> | ||
# Quick Start | ||
|
||
## Hello Email | ||
|
||
The following is the minimum needed code to send an email with the [/mail/send Helper](https://github.com/sendgrid/sendgrid-php/tree/master/lib/helpers/mail) ([here](https://github.com/sendgrid/sendgrid-php/blob/master/examples/helpers/mail/example.php#L22) is a full example): | ||
The following is the minimum needed code to send an email. You may find more examples in our USE_CASES file: | ||
|
||
```php | ||
<?php | ||
// If you are using Composer (recommended) | ||
require 'vendor/autoload.php'; | ||
|
||
// If you are not using Composer | ||
// require("path/to/sendgrid-php/sendgrid-php.php"); | ||
|
||
$from = new SendGrid\Email("Example User", "[email protected]"); | ||
$subject = "Sending with SendGrid is Fun"; | ||
$to = new SendGrid\Email("Example User", "[email protected]"); | ||
$content = new SendGrid\Content("text/plain", "and easy to do anywhere, even with PHP"); | ||
|
||
// Send message as html | ||
// $content = new SendGrid\Content("text/html", "<h1>Sending with SendGrid is Fun and easy to do anywhere, even with PHP</h1>"); | ||
|
||
$mail = new SendGrid\Mail($from, $subject, $to, $content); | ||
|
||
$apiKey = getenv('SENDGRID_API_KEY'); | ||
$sg = new \SendGrid($apiKey); | ||
|
||
$response = $sg->client->mail()->send()->post($mail); | ||
echo $response->statusCode(); | ||
print_r($response->headers()); | ||
echo $response->body(); | ||
require 'vendor/autoload.php'; // If you're using Composer (recommended) | ||
// Comment out the above line if not using Composer | ||
// require("./sendgrid-php.php"); | ||
// If not using Composer, uncomment the above line | ||
|
||
$email = new \SendGrid\Mail\Mail(); | ||
$email->setFrom("[email protected]", "Example User"); | ||
$email->setSubject("Sending with SendGrid is Fun"); | ||
$email->addTo("[email protected]", "Example User"); | ||
$email->addContent("text/plain", "and easy to do anywhere, even with PHP"); | ||
$email->addContent( | ||
"text/html", "<strong>and easy to do anywhere, even with PHP</strong>" | ||
); | ||
$sendgrid = new \SendGrid(getenv('SENDGRID_API_KEY')); | ||
try { | ||
$response = $sendgrid->send($email); | ||
print $response->statusCode() . "\n"; | ||
print_r($response->headers()); | ||
print $response->body() . "\n"; | ||
} catch (Exception $e) { | ||
echo 'Caught exception: ', $e->getMessage(), "\n"; | ||
} | ||
``` | ||
|
||
The `SendGrid\Mail` constructor creates a [personalization object](https://sendgrid.com/docs/Classroom/Send/v3_Mail_Send/personalizations.html) for you. [Here](https://github.com/sendgrid/sendgrid-php/blob/master/examples/helpers/mail/example.php#L16) is an example of how to add to it. | ||
|
||
### Without Mail Helper Class | ||
|
||
The following is the minimum needed code to send an email without the /mail/send Helper ([here](https://github.com/sendgrid/sendgrid-php/blob/master/examples/mail/mail.php#L28) is a full example): | ||
|
||
```php | ||
<?php | ||
// If you are using Composer (recommended) | ||
require 'vendor/autoload.php'; | ||
|
||
// If you are not using Composer | ||
// require("path/to/sendgrid-php/sendgrid-php.php"); | ||
|
||
$request_body = json_decode('{ | ||
"personalizations": [ | ||
{ | ||
"to": [ | ||
{ | ||
"email": "[email protected]" | ||
} | ||
], | ||
"subject": "Sending with SendGrid is Fun" | ||
} | ||
], | ||
"from": { | ||
"email": "[email protected]" | ||
}, | ||
"content": [ | ||
{ | ||
"type": "text/plain", | ||
"value": "and easy to do anywhere, even with PHP" | ||
} | ||
] | ||
}'); | ||
|
||
$apiKey = getenv('SENDGRID_API_KEY'); | ||
$sg = new \SendGrid($apiKey); | ||
|
||
$response = $sg->client->mail()->send()->post($request_body); | ||
echo $response->statusCode(); | ||
echo $response->body(); | ||
print_r($response->headers()); | ||
``` | ||
The `SendGrid\Mail` constructor creates a [personalization object](https://sendgrid.com/docs/Classroom/Send/v3_Mail_Send/personalizations.html) for you. [Here](https://github.com/sendgrid/sendgrid-php/blob/master/USE_CASES.md#kitchen-sink) is an example of how to add to it. | ||
|
||
## General v3 Web API Usage (With Fluent Interface) | ||
|
||
```php | ||
<?php | ||
// If you are using Composer (recommended) | ||
require 'vendor/autoload.php'; | ||
|
||
// If you are not using Composer | ||
// require("path/to/sendgrid-php/sendgrid-php.php"); | ||
require 'vendor/autoload.php'; // If you're using Composer (recommended) | ||
// Comment out the above line if not using Composer | ||
// require("./sendgrid-php.php"); | ||
// If not using Composer, uncomment the above line | ||
|
||
$apiKey = getenv('SENDGRID_API_KEY'); | ||
$sg = new \SendGrid($apiKey); | ||
|
||
$response = $sg->client->suppression()->bounces()->get(); | ||
|
||
print $response->statusCode(); | ||
print $response->headers(); | ||
print $response->body(); | ||
try { | ||
$response = $sg->client->suppression()->bounces()->get(); | ||
print $response->statusCode() . "\n"; | ||
print_r($response->headers()); | ||
print $response->body() . "\n"; | ||
} catch (Exception $e) { | ||
echo 'Caught exception: ', $e->getMessage(), "\n"; | ||
} | ||
``` | ||
|
||
## General v3 Web API Usage (Without Fluent Interface) | ||
|
||
```php | ||
<?php | ||
// If you are using Composer (recommended) | ||
require 'vendor/autoload.php'; | ||
|
||
// If you are not using Composer | ||
// require("path/to/sendgrid-php/sendgrid-php.php"); | ||
require 'vendor/autoload.php'; // If you're using Composer (recommended) | ||
// Comment out the above line if not using Composer | ||
// require("./sendgrid-php.php"); | ||
// If not using Composer, uncomment the above line | ||
|
||
$apiKey = getenv('SENDGRID_API_KEY'); | ||
$sg = new \SendGrid($apiKey); | ||
|
||
$response = $sg->client->_("suppression/bounces")->get(); | ||
|
||
print $response->statusCode(); | ||
print $response->headers(); | ||
print $response->body(); | ||
try { | ||
$response = $sg->client->_("suppression/bounces")->get(); | ||
print $response->statusCode() . "\n"; | ||
print_r($response->headers()); | ||
print $response->body() . "\n"; | ||
} catch (Exception $e) { | ||
echo 'Caught exception: ', $e->getMessage(), "\n"; | ||
} | ||
``` | ||
|
||
<a name="use-cases"></a> | ||
# Use Cases | ||
|
||
[Examples of common API use cases](https://github.com/sendgrid/sendgrid-php/blob/master/USE_CASES.md), such as how to send an email with a transactional template. | ||
|
||
<a name="usage"></a> | ||
# Usage | ||
|
||
- [SendGrid Docs](https://sendgrid.com/docs/API_Reference/index.html) | ||
- [Library Usage | ||
- [Generic Library Usage | ||
Documentation](https://github.com/sendgrid/sendgrid-php/tree/master/USAGE.md) | ||
- [Example Code](https://github.com/sendgrid/sendgrid-php/tree/master/examples) | ||
- [How-to: Migration from v2 to v3](https://sendgrid.com/docs/Classroom/Send/v3_Mail_Send/how_to_migrate_from_v2_to_v3_mail_send.html) | ||
- [v3 Web API Mail Send Helper](https://github.com/sendgrid/sendgrid-php/tree/master/lib/helpers/mail/README.md) - build a request object payload for a v3 /mail/send API call. | ||
|
||
<a name="use-cases"></a> | ||
# Use Cases | ||
|
||
[Examples of common API use cases](https://github.com/sendgrid/sendgrid-php/blob/master/USE_CASES.md), such as how to send an email with a transactional template. | ||
- [Example Code](https://github.com/sendgrid/sendgrid-php/blob/master/USE_CASES.md) | ||
|
||
<a name="announcements"></a> | ||
# Announcements | ||
|
||
Please see our announcement regarding [breaking changes](https://github.com/sendgrid/sendgrid-php/issues/290). Your support is appreciated! | ||
v7 has been released! Please see the [release notes](https://github.com/sendgrid/sendgrid-php/releases/tag/v7.0.0) for details. | ||
|
||
All updates to this library are documented in our [CHANGELOG](https://github.com/sendgrid/sendgrid-php/blob/master/CHANGELOG.md) and [releases](https://github.com/sendgrid/sendgrid-php/releases). You may also subscribe to email [release notifications](https://dx.sendgrid.com/newsletter/php) for releases and breaking changes. | ||
|
||
|
Oops, something went wrong.