Blame | Last modification | View Log | RSS feed
This documentation provides examples for specific use cases. Please [open an issue](https://github.com/sendgrid/sendgrid-php/issues) or make a pull request for any use cases you would like us to document here. Thank you!# Table of Contents* [Attachments](#attachments)* [Transactional Templates](#transactional_templates)<a name="attachments"></a># AttachmentsHere is an example of attaching a text file to your email, assuming that text file `my_file.txt` is located in the same directory.```php<?php// using SendGrid's PHP Library// https://github.com/sendgrid/sendgrid-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", "test@example.com");$subject = "Sending with SendGrid is Fun";$to = new SendGrid\Email("Example User", "test@example.com");$content = new SendGrid\Content("text/plain", "and easy to do anywhere, even with PHP");$file = 'my_file.txt';$file_encoded = base64_encode(file_get_contents($file));$attachment = new SendGrid\Attachment();$attachment->setContent($file_encoded);$attachment->setType("application/text");$attachment->setDisposition("attachment");$attachment->setFilename("my_file.txt");$mail = new SendGrid\Mail($from, $subject, $to, $content);$mail->addAttachment($attachment);$apiKey = getenv('SENDGRID_API_KEY');$sg = new \SendGrid($apiKey);$response = $sg->client->mail()->send()->post($mail);echo $response->statusCode();echo $response->headers();echo $response->body();?>```<a name="transactional_templates"></a># Transactional TemplatesFor this example, we assume you have created a [transactional template](https://sendgrid.com/docs/User_Guide/Transactional_Templates/index.html). Following is the template content we used for testing.Template ID (replace with your own):```text13b8f94f-bcae-4ec6-b752-70d6cb59f932```Email Subject:```text<%subject%>```Template Body:```html<html><head><title></title></head><body>Hello -name-,<br /><br/>I'm glad you are trying out the template feature!<br /><br/><%body%><br /><br/>I hope you are having a great day in -city- :)<br /><br/></body></html>```## With Mail Helper Class```php<?php// If you are using Composerrequire 'vendor/autoload.php';// If you are not using Composer (recommended)// require("path/to/sendgrid-php/sendgrid-php.php");$from = new SendGrid\Email(null, "test@example.com");$subject = "I'm replacing the subject tag";$to = new SendGrid\Email(null, "test@example.com");$content = new SendGrid\Content("text/html", "I'm replacing the <strong>body tag</strong>");$mail = new SendGrid\Mail($from, $subject, $to, $content);$mail->personalization[0]->addSubstitution("-name-", "Example User");$mail->personalization[0]->addSubstitution("-city-", "Denver");$mail->setTemplateId("13b8f94f-bcae-4ec6-b752-70d6cb59f932");$apiKey = getenv('SENDGRID_API_KEY');$sg = new \SendGrid($apiKey);try {$response = $sg->client->mail()->send()->post($mail);} catch (Exception $e) {echo 'Caught exception: ', $e->getMessage(), "\n";}echo $response->statusCode();echo $response->headers();echo $response->body();```## Without Mail Helper Class```php<?php// If you are using Composerrequire 'vendor/autoload.php';// If you are not using Composer (recommended)// require("path/to/sendgrid-php/sendgrid-php.php");$request_body = json_decode('{"personalizations": [{"to": [{"email": "dx@sendgrid.com"}],"substitutions": {"-name-": "Example User","-city-": "Denver"},"subject": "I\'m replacing the subject tag"}],"from": {"email": "elmer@sendgrid.com"},"content": [{"type": "text/html","value": "I\'m replacing the <strong>body tag</strong>"}],"template_id": "13b8f94f-bcae-4ec6-b752-70d6cb59f932"}');$apiKey = getenv('SENDGRID_API_KEY');$sg = new \SendGrid($apiKey);try {$response = $sg->client->mail()->send()->post($request_body);} catch (Exception $e) {echo 'Caught exception: ', $e->getMessage(), "\n";}echo $response->statusCode();echo $response->body();echo $response->headers();```