/sendgrid-php.php'; use SendGrid\Mail\To; use SendGrid\Mail\Cc; use SendGrid\Mail\Bcc; use SendGrid\Mail\From; use SendGrid\Mail\Content; use SendGrid\Mail\Mail; use SendGrid\Mail\Personalization; use SendGrid\Mail\Subject; use SendGrid\Mail\Header; use SendGrid\Mail\CustomArg; use SendGrid\Mail\SendAt; use SendGrid\Mail\Attachment; use SendGrid\Mail\Asm; use SendGrid\Mail\MailSettings; use SendGrid\Mail\BccSettings; use SendGrid\Mail\SandBoxMode; use SendGrid\Mail\BypassListManagement; use SendGrid\Mail\Footer; use SendGrid\Mail\SpamCheck; use SendGrid\Mail\TrackingSettings; use SendGrid\Mail\ClickTracking; use SendGrid\Mail\OpenTracking; use SendGrid\Mail\SubscriptionTracking; use SendGrid\Mail\Ganalytics; use SendGrid\Mail\ReplyTo; $apiKey = getenv('SENDGRID_API_KEY'); $sg = new \SendGrid($apiKey); $mail = new Mail(); $personalization0 = new Personalization(); $personalization0->addTo(new To("john_doe@example.com", "John Doe")); $personalization0->addTo(new To("julia_doe@example.com", "Julia Doe")); $personalization0->addCc(new Cc("jane_doe@example.com", "Jane Doe")); $personalization0->addBcc(new Bcc("james_doe@example.com", "Jim Doe")); $mail->addPersonalization($personalization0); $personalization1 = new Personalization(); $personalization1->setFrom(new From("sales@example.com", "Example Sales Team")); $personalization1->addTo(new To("janice_doe@example.com", "Janice Doe")); $personalization1->addBcc(new Bcc("jordan_doe@example.com", "Jordan Doe")); $mail->addPersonalization($personalization1); $mail->setFrom(new From("orders@example.com", "Example Order Confirmation")); $mail->setReplyTo(new ReplyTo("customer_service@example.com", "Example Customer Service Team")); $mail->setSubject(new Subject("Your Example Order Confirmation")); $mail->addContent(new Content("text/html", "

Hello from Twilio SendGrid!

Sending with the email service trusted by developers and marketers for time-savings, scalability, and delivery expertise.

%open-track%

")); $attachment0 = new Attachment(); $attachment0->setContent("PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KCiAgICA8aGVhZD4KICAgICAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIj4KICAgICAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICAgICAgPHRpdGxlPkRvY3VtZW50PC90aXRsZT4KICAgIDwvaGVhZD4KCiAgICA8Ym9keT4KCiAgICA8L2JvZHk+Cgo8L2h0bWw+Cg=="); $attachment0->setFilename("index.html"); $attachment0->setType("text/html"); $attachment0->setDisposition("attachment"); $mail->addAttachment($attachment0); $mail->addCategory("cake"); $mail->addCategory("pie"); $mail->addCategory("baking"); $mail->setSendAt(new SendAt(1617260400)); $mail->setBatchId("AsdFgHjklQweRTYuIopzXcVBNm0aSDfGHjklmZcVbNMqWert1znmOP2asDFjkl"); $asm = new ASM(); $asm->setGroupId(12345); $asm->setGroupsToDisplay([12345]); $mail->setASM($asm); $mail->setIpPoolName("transactional email"); $mail_settings = new MailSettings(); $bypass_list_management = new BypassListManagement(); $bypass_list_management->setEnable(false); $mail_settings->setBypassListManagement($bypass_list_management); $footer = new Footer(); $footer->setEnable(false); $mail_settings->setFooter($footer); $sandbox_mode = new SandboxMode(); $sandbox_mode->setEnable(false); $mail_settings->setSandboxMode($sandbox_mode); $mail->setMailSettings($mail_settings); $tracking_settings = new TrackingSettings(); $click_tracking = new ClickTracking(); $click_tracking->setEnable(true); $click_tracking->setEnableText(false); $tracking_settings->setClickTracking($click_tracking); $open_tracking = new OpenTracking(); $open_tracking->setEnable(true); $open_tracking->setSubstitutionTag("%open-track%"); $tracking_settings->setOpenTracking($open_tracking); $subscription_tracking = new SubscriptionTracking(); $subscription_tracking->setEnable(false); $tracking_settings->setSubscriptionTracking($subscription_tracking); $mail->setTrackingSettings($tracking_settings); $request_body = $mail; try { $response = $sg->client->mail()->send()->post($request_body); print $response->statusCode() . "\n"; print_r($response->headers()); print $response->body() . "\n"; } catch (Exception $ex) { echo 'Caught exception: '. $ex->getMessage(); }