Creazione di modelli di e-mail personalizzati utilizzando l'API Amazon SES e la AWS SDK for PHP versione 3 - AWS SDK for PHP

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creazione di modelli di e-mail personalizzati utilizzando l'API Amazon SES e la AWS SDK for PHP versione 3

Amazon Simple Email Service (Amazon SES) Simple Email Service (Amazon SES) consente di inviare e-mail personalizzate per ciascun destinatario utilizzando modelli. I modelli includono un oggetto, il testo e le parti HTML del corpo dell'e-mail. Le sezioni dell'oggetto e del corpo possono anche contenere valori univoci personalizzati per ogni destinatario.

Per ulteriori informazioni, consulta Invio di e-mail personalizzate utilizzando Amazon SES nella Amazon Simple Email Service Developer Guide.

Gli esempi seguenti mostrano come:

Tutto il codice di esempio per il AWS SDK for PHP è disponibile qui. GitHub

Credenziali

Prima di eseguire il codice di esempio, configurate AWS le vostre credenziali, come descritto inCredenziali. Quindi importate il fileAWS SDK for PHP, come descritto inUtilizzo di base.

Per ulteriori informazioni sull'uso di Amazon SES, consulta la Amazon SES Developer Guide.

Creazione di un modello di e-mail

Per creare un modello per inviare messaggi e-mail personalizzati, utilizza l'CreateTemplateoperazione. Il modello può essere utilizzato da qualsiasi account autorizzato a inviare messaggi nella AWS regione a cui è stato aggiunto il modello.

Nota

Amazon SES non convalida il codice HTML, quindi assicurati che HtmlPartsia valido prima di inviare un'e-mail.

Importazioni

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Codice di esempio

$SesClient = new Aws\Ses\SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-2' ]); $name = 'Template_Name'; $html_body = '<h1>AWS Amazon Simple Email Service Test Email</h1>' . '<p>This email was sent with <a href="https://aws.amazon.com/ses/">' . 'Amazon SES</a> using the <a href="https://aws.amazon.com/sdk-for-php/">' . 'AWS SDK for PHP</a>.</p>'; $subject = 'Amazon SES test (AWS SDK for PHP)'; $plaintext_body = 'This email was send with Amazon SES using the AWS SDK for PHP.'; try { $result = $SesClient->createTemplate([ 'Template' => [ 'HtmlPart' => $html_body, 'SubjectPart' => $subject, 'TemplateName' => $name, 'TextPart' => $plaintext_body, ], ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Richiedi un modello di email

Per visualizzare il contenuto di un modello di email esistente, inclusi l'oggetto, il corpo HTML e il testo semplice, utilizza l'GetTemplateoperazione. Solo TemplateName è obbligatorio.

Importazioni

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Codice di esempio

$SesClient = new Aws\Ses\SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-2' ]); $name = 'Template_Name'; try { $result = $SesClient->getTemplate([ 'TemplateName' => $name, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Elenca tutti i modelli di email

Per recuperare un elenco di tutti i modelli di email associati al tuo Account AWS nella AWS regione corrente, usa l'ListTemplatesoperazione.

Importazioni

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Codice di esempio

$SesClient = new Aws\Ses\SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-2' ]); try { $result = $SesClient->listTemplates([ 'MaxItems' => 10, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Aggiornamento di un modello di e-mail

Per modificare il contenuto di un modello di email specifico, tra cui la riga dell'oggetto, il corpo HTML e il testo semplice, utilizza l'UpdateTemplateoperazione.

Importazioni

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Codice di esempio

$SesClient = new Aws\Ses\SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-2' ]); $name = 'Template_Name'; $html_body = '<h1>AWS Amazon Simple Email Service Test Email</h1>' . '<p>This email was sent with <a href="https://aws.amazon.com/ses/">' . 'Amazon SES</a> using the <a href="https://aws.amazon.com/sdk-for-php/">' . 'AWS SDK for PHP</a>.</p>'; $subject = 'Amazon SES test (AWS SDK for PHP)'; $plaintext_body = 'This email was send with Amazon SES using the AWS SDK for PHP.'; try { $result = $SesClient->updateTemplate([ 'Template' => [ 'HtmlPart' => $html_body, 'SubjectPart' => $subject, 'TemplateName' => $name, 'TextPart' => $plaintext_body, ], ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Eliminazione di un modello di e-mail

Per rimuovere un modello di email specifico, usa l'DeleteTemplateoperazione. Tutto ciò di cui hai bisogno è il TemplateName.

Importazioni

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Codice di esempio

$SesClient = new Aws\Ses\SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-2' ]); $name = 'Template_Name'; try { $result = $SesClient->deleteTemplate([ 'TemplateName' => $name, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Inviare un'e-mail con un modello

Per utilizzare un modello per inviare un'e-mail ai destinatari, utilizza l'SendTemplatedEmailoperazione.

Importazioni

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Codice di esempio

$SesClient = new Aws\Ses\SesClient([ 'profile' => 'default', 'version' => '2010-12-01', 'region' => 'us-east-2' ]); $template_name = 'Template_Name'; $sender_email = 'email_address'; $recipient_emails = ['email_address']; try { $result = $SesClient->sendTemplatedEmail([ 'Destination' => [ 'ToAddresses' => $recipient_emails, ], 'ReplyToAddresses' => [$sender_email], 'Source' => $sender_email, 'Template' => $template_name, 'TemplateData' => '{ }' ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }