Senden einer Vorlage-E-Mail mit Amazon SES mit einem AWS SDK - Amazon Simple Email Service

Senden einer Vorlage-E-Mail mit Amazon SES mit einem AWS SDK

Die folgenden Code-Beispiele zeigen, wie mit Amazon SES eine Vorlage-E-Mail gesendet werden kann.

.NET
AWS SDK for .NET
Anmerkung

Auf GitHub finden Sie noch mehr. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das AWS-Code-Beispiel- einrichten und ausführen.

/// <summary> /// Send an email using a template. /// </summary> /// <param name="sender">Address of the sender.</param> /// <param name="recipients">Addresses of the recipients.</param> /// <param name="templateName">Name of the email template.</param> /// <param name="templateDataObject">Data for the email template.</param> /// <returns>The messageId of the email.</returns> public async Task<string> SendTemplateEmailAsync(string sender, List<string> recipients, string templateName, object templateDataObject) { var messageId = ""; try { // Template data should be serialized JSON from either a class or a dynamic object. var templateData = JsonSerializer.Serialize(templateDataObject); var response = await _amazonSimpleEmailService.SendTemplatedEmailAsync( new SendTemplatedEmailRequest { Source = sender, Destination = new Destination { ToAddresses = recipients }, Template = templateName, TemplateData = templateData }); messageId = response.MessageId; } catch (Exception ex) { Console.WriteLine("SendTemplateEmailAsync failed with exception: " + ex.Message); } return messageId; }
  • Weitere API-Informationen finden Sie unter SendTemplatedEmail in der API-Referenz zu AWS SDK for .NET.

Java
SDK für Java 2.x
Anmerkung

Auf GitHub finden Sie noch mehr. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das AWS-Code-Beispiel- einrichten und ausführen.

public static void send(SesV2Client client, String sender, String recipient, String templateName){ Destination destination = Destination.builder() .toAddresses(recipient) .build(); /* Specify both name and favorite animal (favoriteanimal) in your code when defining the Template object. If you don't specify all the variables in the template, Amazon SES doesn't send the email. */ Template myTemplate = Template.builder() .templateName(templateName) .templateData("{\n" + " \"name\": \"Jason\"\n," + " \"favoriteanimal\": \"Cat\"\n" + "}") .build(); EmailContent emailContent = EmailContent.builder() .template(myTemplate) .build(); SendEmailRequest emailRequest = SendEmailRequest.builder() .destination(destination) .content(emailContent) .fromEmailAddress(sender) .build(); try { System.out.println("Attempting to send an email based on a template using the AWS SDK for Java (v2)..."); client.sendEmail(emailRequest); System.out.println("email based on a template was sent"); } catch (SesV2Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
  • Weitere API-Informationen finden Sie unter SendTemplatedEmail in der API-Referenz zu AWS SDK for Java 2.x.

JavaScript
SDK für JavaScript V3
Anmerkung

Auf GitHub finden Sie noch mehr. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das AWS-Code-Beispiel- einrichten und ausführen.

import { SendTemplatedEmailCommand } from "@aws-sdk/client-ses"; import { getUniqueName, postfix } from "../../libs/utils/util-string.js"; import { sesClient } from "./libs/sesClient.js"; /** * Replace this with the name of an existing template. */ const TEMPLATE_NAME = getUniqueName("ReminderTemplate"); /** * Replace these with existing verified emails. */ const VERIFIED_EMAIL = postfix(getUniqueName("Bilbo"), "@example.com"); const USER = { firstName: "Bilbo", emailAddress: VERIFIED_EMAIL }; /** * * @param { { emailAddress: string, firstName: string } } user * @param { string } templateName - The name of an existing template in Amazon SES. * @returns { SendTemplatedEmailCommand } */ const createReminderEmailCommand = (user, templateName) => { return new SendTemplatedEmailCommand({ /** * Here's an example of how a template would be replaced with user data: * Template: <h1>Hello {{contact.firstName}},</h1><p>Don't forget about the party gifts!</p> * Destination: <h1>Hello Bilbo,</h1><p>Don't forget about the party gifts!</p> */ Destination: { ToAddresses: [user.emailAddress] }, TemplateData: JSON.stringify({ contact: { firstName: user.firstName } }), Source: VERIFIED_EMAIL, Template: templateName, }); }; const run = async () => { const sendReminderEmailCommand = createReminderEmailCommand( USER, TEMPLATE_NAME ); try { return await sesClient.send(sendReminderEmailCommand); } catch (err) { console.log("Failed to send template email", err); return err; } };
  • Weitere API-Informationen finden Sie unter SendTemplatedEmail in der API-Referenz zu AWS SDK for JavaScript.

Python
SDK für Python (Boto3)
Anmerkung

Auf GitHub finden Sie noch mehr. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das AWS-Code-Beispiel- einrichten und ausführen.

class SesMailSender: """Encapsulates functions to send emails with Amazon SES.""" def __init__(self, ses_client): """ :param ses_client: A Boto3 Amazon SES client. """ self.ses_client = ses_client def send_templated_email( self, source, destination, template_name, template_data, reply_tos=None): """ Sends an email based on a template. A template contains replaceable tags each enclosed in two curly braces, such as {{name}}. The template data passed in this function contains key-value pairs that define the values to insert in place of the template tags. Note: If your account is in the Amazon SES sandbox, the source and destination email accounts must both be verified. :param source: The source email account. :param destination: The destination email account. :param template_name: The name of a previously created template. :param template_data: JSON-formatted key-value pairs of replacement values that are inserted in the template before it is sent. :return: The ID of the message, assigned by Amazon SES. """ send_args = { 'Source': source, 'Destination': destination.to_service_format(), 'Template': template_name, 'TemplateData': json.dumps(template_data) } if reply_tos is not None: send_args['ReplyToAddresses'] = reply_tos try: response = self.ses_client.send_templated_email(**send_args) message_id = response['MessageId'] logger.info( "Sent templated mail %s from %s to %s.", message_id, source, destination.tos) except ClientError: logger.exception( "Couldn't send templated mail from %s to %s.", source, destination.tos) raise else: return message_id
  • Details zu API finden Sie unter SendTemplatedEmail in der API-Referenz zu AWS SDK for Python (Boto3).

Eine vollständige Liste der AWS-SDK-Entwicklerhandbücher und Code-Beispiele finden Sie unter Verwenden von Amazon SES mit einem AWS SDK. Dieses Thema enthält auch Informationen zu den ersten Schritten und Details zu früheren SDK-Versionen.