Création de modèles d'e-mails personnalisés à l'aide de l'API Amazon SES et de la AWS SDK for PHP version 3 - AWS SDK for PHP

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création de modèles d'e-mails personnalisés à l'aide de l'API Amazon SES et de la AWS SDK for PHP version 3

Amazon Simple Email Service (Amazon SES) vous permet d'envoyer des e-mails personnalisés pour chaque destinataire à l'aide de modèles. Les modèles incluent une ligne d’objet, ainsi que les parties texte et HTML du corps de l’e-mail. Les sections objet et corps peuvent également contenir des valeurs uniques personnalisées pour chaque destinataire.

Pour plus d'informations, consultez la section Envoi d'e-mails personnalisés à l'aide d'Amazon SES dans le manuel Amazon Simple Email Service Developer Guide.

Les exemples suivants montrent comment :

Tous les exemples de code pour le AWS SDK for PHP sont disponibles ici GitHub.

Informations d’identification

Avant d'exécuter l'exemple de code, configurez vos AWS informations d'identification, comme décrit dansInformations d'identification. Importez ensuite leAWS SDK for PHP, comme décrit dansUtilisation de base.

Pour plus d'informations sur l'utilisation d'Amazon SES, consultez le manuel du développeur Amazon SES.

Créer un modèle d'e-mail

Pour créer un modèle pour envoyer des e-mails personnalisés, utilisez l'CreateTemplateopération. Le modèle peut être utilisé par n'importe quel compte autorisé à envoyer des messages dans la AWS région à laquelle le modèle est ajouté.

Note

Amazon SES ne valide pas votre code HTML. Assurez-vous donc qu'il HtmlPartest valide avant d'envoyer un e-mail.

Importations

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

Exemple de code

$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"; }

Obtenez un modèle d'e-mail

Pour afficher le contenu d'un modèle d'e-mail existant, y compris la ligne d'objet, le corps HTML et le texte brut, utilisez l'GetTemplateopération. Seul TemplateName est requis.

Importations

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

Exemple de code

$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"; }

Répertorier tous les modèles d'e-mails

Pour récupérer la liste de tous les modèles d'e-mail qui vous sont associés Compte AWS dans la AWS région actuelle, utilisez l'ListTemplatesopération.

Importations

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

Exemple de code

$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"; }

Mettre à jour un modèle d'e-mail

Pour modifier le contenu d'un modèle d'e-mail spécifique, y compris la ligne d'objet, le corps HTML et le texte brut, utilisez l'UpdateTemplateopération.

Importations

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

Exemple de code

$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"; }

Supprimer un modèle d'e-mail

Pour supprimer un modèle d'e-mail spécifique, utilisez l'DeleteTemplateopération. Tout ce dont vous avez besoin, c'est du TemplateName.

Importations

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

Exemple de code

$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"; }

Envoyer un e-mail avec un modèle

Pour utiliser un modèle pour envoyer un e-mail aux destinataires, utilisez l'SendTemplatedEmailopération.

Importations

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

Exemple de code

$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"; }