├── .env.example ├── .gitignore ├── README.md ├── composer.json ├── gif.gif ├── sendgrid-php-example.php └── smtp-php-example.php /.env.example: -------------------------------------------------------------------------------- 1 | SENDGRID_USERNAME=your_username 2 | SENDGRID_PASSWORD=your_password 3 | TO=you@youremail.com 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env* 3 | !.env.example 4 | composer.lock 5 | vendor 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # sendgrid-php-example 2 | 3 | This is an example of using the [SendGrid php library](https://github.com/sendgrid/sendgrid-php). 4 | 5 | ## Usage 6 | 7 | ```bash 8 | git clone https://github.com/sendgrid/sendgrid-php-example.git 9 | cd sendgrid-php-example 10 | cp .env.example .env 11 | composer install 12 | php -f sendgrid-php-example.php 13 | php -f smtp-php-example.php 14 | ``` 15 | Make sure to set username, password and recipient in the `.env` file. If you're not sure why they're stored in the `.env` file you can read up on it [here](http://12factor.net/config). 16 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sendgrid-php-example", 3 | "description": "Example of using the SendGrid php library.", 4 | "version": "0.0.1", 5 | "homepage": "http://github.com/scottmotte/sendgrid-php-example", 6 | "license": "MIT", 7 | "keywords": ["SendGrid", "sendgrid", "email", "send", "grid", "php"], 8 | "require": { 9 | "sendgrid/sendgrid": "2.1.1", 10 | "sendgrid/smtpapi": "0.0.1", 11 | "vlucas/phpdotenv": "1.0.*", 12 | "swiftmailer/swiftmailer": "v5.0.3" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /gif.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sendgrid/sendgrid-php-example/4f7c55dd5b29f09a956338ccf3b39100a15a6b6e/gif.gif -------------------------------------------------------------------------------- /sendgrid-php-example.php: -------------------------------------------------------------------------------- 1 | true)); 10 | $email = new SendGrid\Email(); 11 | $email->addTo($to)-> 12 | setFrom($to)-> 13 | setSubject('[sendgrid-php-example] Owl named %yourname%')-> 14 | setText('Owl are you doing?')-> 15 | setHtml('%how% are you doing?')-> 16 | addSubstitution("%yourname%", array("Mr. Owl"))-> 17 | addSubstitution("%how%", array("Owl"))-> 18 | addHeader('X-Sent-Using', 'SendGrid-API')-> 19 | addHeader('X-Transport', 'web')-> 20 | addAttachment('./gif.gif', 'owl.gif'); 21 | 22 | $response = $sendgrid->send($email); 23 | var_dump($response); 24 | -------------------------------------------------------------------------------- /smtp-php-example.php: -------------------------------------------------------------------------------- 1 | setUsername($sendgrid_username); 11 | $transport->setPassword($sendgrid_password); 12 | 13 | $mailer = Swift_Mailer::newInstance($transport); 14 | 15 | $message = new Swift_Message(); 16 | $message->setTo($to); 17 | $message->setFrom($to); 18 | $message->setSubject("[smtp-php-example] Owl named %yourname%"); 19 | $message->setBody("%how% are you doing?"); 20 | 21 | $header = new Smtpapi\Header(); 22 | $header->addSubstitution("%yourname%", array("Mr. Owl")); 23 | $header->addSubstitution("%how%", array("Owl")); 24 | 25 | $message_headers = $message->getHeaders(); 26 | $message_headers->addTextHeader("x-smtpapi", $header->jsonString()); 27 | 28 | try { 29 | $response = $mailer->send($message); 30 | print_r($response); 31 | } catch(\Swift_TransportException $e) { 32 | print_r($e); 33 | print_r('Bad username / password'); 34 | } 35 | --------------------------------------------------------------------------------