HEX
Server: LiteSpeed
System: Linux srv1.dhviews.com 5.14.0-570.23.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Jun 24 11:27:16 EDT 2025 x86_64
User: bdedition (1723)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /home/bdedition/public_html/core/vendor/sendgrid/sendgrid/examples/dataresidency/setregion.php
<?php
// index.php
require_once __DIR__ . '/../../sendgrid-php.php';

use SendGrid\Mail\Mail;
use SendGrid\Mail\Personalization;
use SendGrid\Mail\To;
$exceptionMessage = 'Caught exception: ';

////////////////////////////////////////////////////
// Set data residency to navigate to a region/edge. #
// sending to global data residency

$email = buildHelloEmail();
$sendgrid = buildSendgridObject("global");

try {
    $response = $sendgrid->client->mail()->send()->post($email);
    print $response->statusCode() . "\n";
    print_r($response->headers());
    print $response->body() . "\n";
} catch (Exception $e) {
    echo $exceptionMessage,  $e->getMessage(), "\n";
}

////////////////////////////////////////////////////
// sending to EU data residency

$sendgrid_eu = buildSendgridObject("eu");

try {
    $response = $sendgrid_eu->client->mail()->send()->post($email);
    print $response->statusCode() . "\n";
    print_r($response->headers());
    print $response->body() . "\n";
} catch (Exception $e) {
    echo $exceptionMessage,  $e->getMessage(), "\n";
}

////////////////////////////////////////////////////
// not configuring any region defaults to global
$sendgrid_default = new \SendGrid(getenv('SENDGRID_API_KEY'));
try {
    $response = $sendgrid_default->client->mail()->send()->post($email);
    print $response->statusCode() . "\n";
    print_r($response->headers());
    print $response->body() . "\n";
} catch (Exception $e) {
    echo $exceptionMessage,  $e->getMessage(), "\n";
}

function buildHelloEmail(): Mail
{
    $email = new Mail();
    $email->setFrom("test@example.com", "test");
    $email->setSubject("Sending with Twilio SendGrid is Fun");
    $email->addTo("test@example.co", "test");
    $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>"
    );
    $objPersonalization = new Personalization();

    $objTo = new To('foo@bar.com', 'foo bar');
    $objPersonalization->addTo($objTo);
    $email->addPersonalization($objPersonalization);
    return $email;
}

function buildSendgridObject($region): SendGrid
{
    $sendgrid = new \SendGrid(getenv('SENDGRID_API_KEY'));
    $sendgrid->setDataResidency($region);
    return $sendgrid;
}