Blame | Last modification | View Log | RSS feed
<?phpnamespace SendGrid;// If you are using Composerrequire __DIR__ . '<PATH_TO>/vendor/autoload.php';function helloEmail(){$from = new Email(null, "test@example.com");$subject = "Hello World from the SendGrid PHP Library";$to = new Email(null, "test@example.com");$content = new Content("text/plain", "some text here");$mail = new Mail($from, $subject, $to, $content);$to = new Email(null, "test2@example.com");$mail->personalization[0]->addTo($to);//echo json_encode($mail, JSON_PRETTY_PRINT), "\n";return $mail;}function kitchenSink(){$mail = new Mail();$email = new Email("DX", "test@example.com");$mail->setFrom($email);$mail->setSubject("Hello World from the SendGrid PHP Library");$personalization = new Personalization();$email1 = new Email("Example User", "test1@example.com");$personalization->addTo($email1);$email2 = new Email("Example User", "test2@example.com");$personalization->addTo($email2);$email3 = new Email("Example User", "test3@example.com");$personalization->addCc($email3);$email4 = new Email("Example User", "test4@example.com");$personalization->addCc($email4);$email5 = new Email("Example User", "test5@example.com");$personalization->addBcc($email5);$email6 = new Email("Example User", "test6@example.com");$personalization->addBcc($email6);$personalization->setSubject("Hello World from the SendGrid PHP Library");$personalization->addHeader("X-Test", "test");$personalization->addHeader("X-Mock", "true");$personalization->addSubstitution("%name%", "Example User");$personalization->addSubstitution("%city%", "Denver");$personalization->addCustomArg("user_id", "343");$personalization->addCustomArg("type", "marketing");$personalization->setSendAt(1443636843);$mail->addPersonalization($personalization);$personalization2 = new Personalization();$email7 = new Email("Example User", "test7@example.com");$personalization2->addTo($email7);$email8 = new Email("Example User", "test8@example.com");$personalization2->addTo($email8);$email9 = new Email("Example User", "test9@example.com");$personalization2->addCc($email9);$email10 = new Email("Example User", "test10@example.com");$personalization2->addCc($email10);$email11 = new Email("Example User", "test11@example.com");$personalization2->addBcc($email11);$email12 = new Email("Example User", "test12@example.com");$personalization2->addBcc($email12);$personalization2->setSubject("Hello World from the SendGrid PHP Library");$personalization2->addHeader("X-Test", "test");$personalization2->addHeader("X-Mock", "true");$personalization2->addSubstitution("%name%", "Example User");$personalization2->addSubstitution("%city%", "Denver");$personalization2->addCustomArg("user_id", "343");$personalization2->addCustomArg("type", "marketing");$personalization2->setSendAt(1443636843);$mail->addPersonalization($personalization2);$content = new Content("text/plain", "some text here");$mail->addContent($content);$content = new Content("text/html", "<html><body>some text here</body></html>");$mail->addContent($content);$attachment = new Attachment();$attachment->setContent("TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gQ3JhcyBwdW12");$attachment->setType("application/pdf");$attachment->setFilename("balance_001.pdf");$attachment->setDisposition("attachment");$attachment->setContentId("Balance Sheet");$mail->addAttachment($attachment);$attachment2 = new Attachment();$attachment2->setContent("BwdW");$attachment2->setType("image/png");$attachment2->setFilename("banner.png");$attachment2->setDisposition("inline");$attachment2->setContentId("Banner");$mail->addAttachment($attachment2);$mail->setTemplateId("439b6d66-4408-4ead-83de-5c83c2ee313a");# This must be a valid [batch ID](https://sendgrid.com/docs/API_Reference/SMTP_API/scheduling_parameters.html) to work# $mail->setBatchID("sengrid_batch_id");$mail->addSection("%section1%", "Substitution Text for Section 1");$mail->addSection("%section2%", "Substitution Text for Section 2");$mail->addHeader("X-Test1", "1");$mail->addHeader("X-Test2", "2");$mail->addCategory("May");$mail->addCategory("2016");$mail->addCustomArg("campaign", "welcome");$mail->addCustomArg("weekday", "morning");$mail->setSendAt(1443636842);$asm = new ASM();$asm->setGroupId(99);$asm->setGroupsToDisplay([4,5,6,7,8]);$mail->setASM($asm);$mail->setIpPoolName("23");$mail_settings = new MailSettings();$bcc_settings = new BccSettings();$bcc_settings->setEnable(true);$bcc_settings->setEmail("test@example.com");$mail_settings->setBccSettings($bcc_settings);$sandbox_mode = new SandBoxMode();$sandbox_mode->setEnable(true);$mail_settings->setSandboxMode($sandbox_mode);$bypass_list_management = new BypassListManagement();$bypass_list_management->setEnable(true);$mail_settings->setBypassListManagement($bypass_list_management);$footer = new Footer();$footer->setEnable(true);$footer->setText("Footer Text");$footer->setHtml("<html><body>Footer Text</body></html>");$mail_settings->setFooter($footer);$spam_check = new SpamCheck();$spam_check->setEnable(true);$spam_check->setThreshold(1);$spam_check->setPostToUrl("https://spamcatcher.sendgrid.com");$mail_settings->setSpamCheck($spam_check);$mail->setMailSettings($mail_settings);$tracking_settings = new TrackingSettings();$click_tracking = new ClickTracking();$click_tracking->setEnable(true);$click_tracking->setEnableText(true);$tracking_settings->setClickTracking($click_tracking);$open_tracking = new OpenTracking();$open_tracking->setEnable(true);$open_tracking->setSubstitutionTag("Optional tag to replace with the open image in the body of the message");$tracking_settings->setOpenTracking($open_tracking);$subscription_tracking = new SubscriptionTracking();$subscription_tracking->setEnable(true);$subscription_tracking->setText("text to insert into the text/plain portion of the message");$subscription_tracking->setHtml("<html><body>html to insert into the text/html portion of the message</body></html>");$subscription_tracking->setSubstitutionTag("Optional tag to replace with the open image in the body of the message");$tracking_settings->setSubscriptionTracking($subscription_tracking);$ganalytics = new Ganalytics();$ganalytics->setEnable(true);$ganalytics->setCampaignSource("some source");$ganalytics->setCampaignTerm("some term");$ganalytics->setCampaignContent("some content");$ganalytics->setCampaignName("some name");$ganalytics->setCampaignMedium("some medium");$tracking_settings->setGanalytics($ganalytics);$mail->setTrackingSettings($tracking_settings);$reply_to = new ReplyTo("test@example.com");$mail->setReplyTo($reply_to);//echo json_encode($mail, JSON_PRETTY_PRINT), "\n";return $mail;}function sendHelloEmail(){$apiKey = getenv('SENDGRID_API_KEY');$sg = new \SendGrid($apiKey);$request_body = helloEmail();$response = $sg->client->mail()->send()->post($request_body);echo $response->statusCode();echo $response->body();echo $response->headers();}function sendKitchenSink(){$apiKey = getenv('SENDGRID_API_KEY');$sg = new \SendGrid($apiKey);$request_body = kitchenSink();$response = $sg->client->mail()->send()->post($request_body);echo $response->statusCode();echo $response->body();echo $response->headers();}sendHelloEmail(); // this will actually send an emailsendKitchenSink(); // this will only send an email if you set SandBox Mode to false?>