기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
템플릿을 사용하여 Amazon SES API를 통해 맞춤형 이메일 전송
Amazon SES에서는 저장된 템플릿을 사용하거나 인라인 템플릿을 사용하여 템플릿화된 이메일을 보낼 수 있습니다.
-
저장된 템플릿 - Amazon SES v2 API의 CreateEmailTemplate
작업을 사용하여 SES에서 생성 및 저장된 Template
리소스를 나타냅니다. Amazon SES 템플릿에는 작성된 콘텐츠와 일치하는 변수(자리 표시자)가 포함된 이메일의 제목과 본문이 포함되어 있습니다. 저장된 템플릿의 이름과 템플릿의 자리 표시자 변수에 대한 동적 데이터는 SendEmail
또는 SendBulkEmail
v2 API 작업을 호출할 때 제공됩니다.
저장된 템플릿은 쉽게 재사용할 수 있으며 유사한 유형의 이메일을 보낼 때 시간과 노력을 절약할 수 있습니다. 처음부터 각 이메일을 생성하는 대신 기본 구조와 설계를 한 번만 생성한 다음 템플릿 내의 동적 콘텐츠를 업데이트하면 됩니다.
-
인라인 템플릿 - Template
리소스가 사용되지 않고, SendEmail
또는 SendBulkEmail
v2 API 작업을 호출할 때 해당 자리 표시자 변수의 값과 함께 작성된 콘텐츠와 인라인인 변수(자리 표시자)가 포함된 이메일의 제목과 본문이 제공됩니다.
인라인 템플릿은 SES 계정에서 템플릿 리소스를 관리할 필요가 없어 대량 이메일을 보내는 프로세스를 간소화하고 애플리케이션 로직에 템플릿 콘텐츠를 직접 포함할 수 있으므로 통합 프로세스를 간소화합니다. 20,000개 템플릿 한도에 포함되지 않습니다 AWS 리전.
저장된 템플릿을 사용할 때는 다음 제한이 적용됩니다.
인라인 템플릿을 사용할 때는 다음 제한이 적용됩니다.
다음은 저장 템플릿과 인라인 템플릿 모두에 적용됩니다.
-
사용할 수 있는 대체 변수 수에는 제한이 없습니다.
-
SendBulkEmail
작업에 대한 각 호출에서 최대 50개의 대상 객체로 이메일을 보낼 수 있습니다. Destination
객체에는 ToAddresses, CcAddresses 및 BccAddresses. v2 API에 대한 단일 호출에서 연락할 수 있는 대상 수는 계정의 최대 전송 속도에 따라 제한될 수 있습니다. 자세한 내용은 Amazon SES 발신 한도 관리 단원을 참조하십시오.
이 장에는 저장된 템플릿과 인라인 템플릿을 모두 사용하는 예제가 포함된 절차가 포함되어 있습니다.
(선택 사항) 1부: 렌더링 실패 이벤트 알림 설정
잘못된 맞춤형 콘텐츠가 포함된 이메일을 전송하는 경우 Amazon SES에서 메시지를 허용할 수는 있지만 전달할 수 없게 됩니다. 따라서 개인 맞춤형 이메일을 보내려는 경우 Amazon SNS를 통해 렌더링 실패 이벤트 알림을 보내도록 SES를 구성해야 합니다. 렌더링 오류 이벤트 알림을 수신할 때 어떤 메시지에 잘못된 콘텐츠가 있는지 식별하고, 문제를 해결한 다음 메시지를 다시 전송할 수 있습니다.
이 섹션의 절차는 선택 사항이지만 강력히 권장됩니다.
렌더링 오류 이벤트 알림을 구성하려면
-
Amazon SNS 주제를 생성합니다. 절차는 Amazon Simple Notification Service 개발자 가이드의 주제 생성을 참조하세요.
-
Amazon SNS 주제를 구독하세요. 예를 들어 렌더링 오류 알림을 이메일로 수신하고자 하는 경우 이메일 엔드포인트(이메일 주소)를 주제에 구독시킵니다.
자세한 내용은 Amazon Simple Notification Service 개발자 가이드의 주제 구독을 참조하세요.
-
이벤트 게시에 필요한 Amazon SNS 이벤트 대상 설정의 절차를 완료하여 구성 세트를 설정해 렌더링 오류 이벤트를 Amazon SNS 주제에 게시합니다.
(선택 사항) 2부: 이메일 템플릿 생성
저장된 템플릿을 사용하려는 경우이 섹션에서는 CreateEmailTemplate
SES v2 API 작업을 사용하여 템플릿을 생성하는 방법을 보여줍니다. 인라인 템플릿을 사용하려면이 단계를 건너뛸 수 있습니다.
이 절차는 AWS CLI를 이미 설치하여 구성한 상태를 전제로 설명합니다. 설치 및 구성에 대한 자세한 내용은 AWS Command Line Interface 사용 설명서를 AWS CLI참조하세요.
템플릿을 생성하려면
-
텍스트 편집기에서 새 파일을 생성하고 필요에 따라 사용자 지정하는 다음 코드를 붙여 넣습니다.
{
"TemplateName": "MyTemplate",
"TemplateContent": {
"Subject": "Greetings, {{name}}!",
"Text": "Dear {{name}},\r\nYour favorite animal is {{favoriteanimal}}.",
"Html": "<h1>Hello {{name}},</h1><p>Your favorite animal is {{favoriteanimal}}.</p>"
}
}
이 코드는 다음 속성을 포함하고 있습니다.
-
위의 예제를 필요에 맞게 사용자 지정한 다음 파일을 mytemplate.json
으로 저장합니다.
-
명령줄에 다음 명령을 입력하여 CreateEmailTemplate
v2 API 작업을 사용하여 새 템플릿을 생성합니다.
aws sesv2 create-email-template --cli-input-json file://mytemplate.json
3부: 맞춤형 이메일 보내기
다음 두 가지 SES v2 API 작업을 사용하여 저장된 템플릿 또는 인라인 템플릿을 사용하여 이메일을 보낼 수 있습니다.
-
SendEmail
작업은 사용자 지정 이메일을 단일 대상 객체로 보내는 데 유용합니다. v2 API Destination
객체에는 ToAddresses, CcAddresses 및 BccAddresses 속성이 포함될 수 있습니다. 이러한 주소는 모든 조합으로 사용할 수 있으며 동일한 이메일을 수신할 이메일 주소를 하나 이상 포함할 수 있습니다.
-
SendBulkEmail
작업은 v2 API를 한 번 호출하여 여러 대상 객체로 고유한 이메일을 보내는 데 유용합니다.
이 섹션에서는를 사용하여 이러한 두 AWS CLI 전송 작업을 모두 사용하여 템플릿화된 이메일을 보내는 방법의 예를 제공합니다.
단일 대상 객체로 템플릿 이메일 전송
SendEmail
작업을 사용하여 단일 대상 객체에 정의된 하나 이상의 수신자에게 이메일을 보낼 수 있습니다. Destination
객체의 모든 수신자는 동일한 이메일을 수신합니다.
템플릿 이메일을 단일 대상 객체로 보내려면
-
저장된 템플릿을 사용할지 인라인 템플릿을 사용할지에 따라 텍스트 편집기에 붙여넣을 각 코드 예제를 선택하여 필요에 따라 사용자 지정합니다.
- Stored template code example
-
이전 단계인 MyTemplate에서 생성한 템플릿이 TemplateName
파라미터의 값으로 참조되고 있습니다.
{
"FromEmailAddress": "Mary Major <mary.major@example.com>",
"Destination": {
"ToAddresses": [
"alejandro.rosalez@example.com", "jimmy.jet@example.com"
]
},
"Content": {
"Template": {
"TemplateName": "MyTemplate",
"TemplateData": "{ \"name\":\"Alejandro\", \"favoriteanimal\": \"alligator\" }"
}
},
"ConfigurationSetName": "ConfigSet"
}
이 코드는 다음 속성을 포함하고 있습니다.
-
FromEmailAddress - 발신자의 이메일 주소입니다.
-
대상 - ToAddresses, CcAddresses 및 BccAddresses 속성에 정의된 이메일 수신자가 포함된 객체입니다. 이러한 주소는 모든 조합으로 사용할 수 있으며 동일한 이메일을 수신할 이메일 주소를 하나 이상 포함할 수 있습니다.
-
TemplateName - 이메일에 적용할 Template
리소스의 이름입니다.
-
TemplateData – 키-값 페어를 포함하는 이스케이프된 JSON 문자열입니다. 키는와 같이 저장된 템플릿의 TemplateContent
속성에 정의된 변수에 해당합니다{{name}}
. 값은 변수를 대체하는 콘텐츠를 나타냅니다.
-
ConfigurationSetName – 이메일 전송 시 사용할 구성 세트의 이름입니다.
- Inline template code example
-
TemplateContent
속성(일반적으로 저장된 템플릿에 정의됨)은 속성과 함께 인라인으로 정의되므로 이를 인라인 템플릿으로 TemplateData
만듭니다.
{
"FromEmailAddress": "Mary Major <mary.major@example.com>",
"Destination": {
"ToAddresses": [
"alejandro.rosalez@example.com", "jimmy.jet@example.com"
]
},
"Content": {
"Template": {
"TemplateContent": {
"Subject": "Greetings, {{name}}!",
"Text": "Dear {{name}},\r\nYour favorite animal is {{favoriteanimal}}.",
"Html": "<h1>Hello {{name}},</h1><p>Your favorite animal is {{favoriteanimal}}.</p>"
},
"TemplateData": "{ \"name\":\"Alejandro\", \"favoriteanimal\": \"alligator\" }"
}
},
"ConfigurationSetName": "ConfigSet"
}
이 코드는 다음 속성을 포함하고 있습니다.
-
FromEmailAddress - 발신자의 이메일 주소입니다.
-
대상 - ToAddresses, CcAddresses 및 BccAddresses 속성에 정의된 이메일 수신자가 포함된 객체입니다. 이러한 주소는 모든 조합으로 사용할 수 있으며 동일한 이메일을 수신할 이메일 주소를 하나 이상 포함할 수 있습니다.
-
TemplateContent - 다음 속성을 위한 컨테이너입니다.
-
SubjectPart – 이메일의 제목 줄입니다. 이 속성에는 대체 태그가 포함될 수 있습니다. 이 태그는 {{tagname}}
형식을 사용합니다. 이메일을 보낼 때 각 대상에 대해 tagname
의 값을 지정할 수 있습니다.
-
HtmlPart – 이메일의 HTML 본문입니다. 이 속성에는 대체 태그가 포함될 수 있습니다. 이전 예에는 {{name}}
및 {{favoriteanimal}}
이라는 두 가지 태그가 포함됩니다.
-
TextPart – 이메일의 텍스트 본문입니다. 이메일 클라이언트에 HTML 콘텐츠가 표시되지 않는 수신자는이 이메일 버전을 볼 수 있습니다. 이 속성에는 대체 태그도 포함될 수 있습니다.
-
TemplateData – 키-값 페어를 포함하는 이스케이프된 JSON 문자열입니다. 키는와 같이이 파일의 TemplateContent
속성에 정의된 변수에 해당합니다{{name}}
. 값은 변수를 대체하는 콘텐츠를 나타냅니다.
-
ConfigurationSetName – 이메일 전송 시 사용할 구성 세트의 이름입니다.
-
위의 예제를 필요에 맞게 사용자 지정한 다음 파일을 myemail.json
으로 저장합니다.
-
명령줄에 다음 v2 API 명령을 입력하여 이메일을 보냅니다.
aws sesv2 send-email --cli-input-json file://myemail.json
여러 대상 객체로 템플릿 이메일 전송
SendBulkEmail
작업을 사용하여 SES v2 API에 대한 단일 호출로 여러 대상 객체에 이메일을 보낼 수 있습니다. SES는 각 Destination
객체의 수신자 또는 수신자에게 고유한 이메일을 보냅니다.
여러 대상 객체로 템플릿 이메일을 보내려면
-
저장된 템플릿을 사용할지 인라인 템플릿을 사용할지에 따라 텍스트 편집기에 붙여넣을 각 코드 예제를 선택하여 필요에 따라 사용자 지정합니다.
- Stored template code example
-
이전 단계인 MyTemplate에서 생성한 템플릿이 TemplateName
파라미터의 값으로 참조되고 있습니다.
{
"FromEmailAddress": "Mary Major <mary.major@example.com>",
"DefaultContent": {
"Template": {
"TemplateName": "MyTemplate",
"TemplateData": "{ \"name\":\"friend\", \"favoriteanimal\":\"unknown\" }"
}
},
"BulkEmailEntries": [
{
"Destination": {
"ToAddresses": [
"anaya.iyengar@example.com"
]
},
"ReplacementEmailContent": {
"ReplacementTemplate": {
"ReplacementTemplateData": "{ \"name\":\"Anaya\", \"favoriteanimal\":\"angelfish\" }"
}
}
},
{
"Destination": {
"ToAddresses": [
"liu.jie@example.com"
]
},
"ReplacementEmailContent": {
"ReplacementTemplate": {
"ReplacementTemplateData": "{ \"name\":\"Liu\", \"favoriteanimal\":\"lion\" }"
}
}
},
{
"Destination": {
"ToAddresses": [
"shirley.rodriguez@example.com"
]
},
"ReplacementEmailContent": {
"ReplacementTemplate": {
"ReplacementTemplateData": "{ \"name\":\"Shirley\", \"favoriteanimal\":\"shark\" }"
}
}
},
{
"Destination": {
"ToAddresses": [
"richard.roe@example.com"
]
},
"ReplacementEmailContent": {
"ReplacementTemplate": {
"ReplacementTemplateData": "{}"
}
}
}
],
"ConfigurationSetName": "ConfigSet"
}
이 코드는 다음 속성을 포함하고 있습니다.
-
FromEmailAddress - 발신자의 이메일 주소입니다.
-
DefaultContent - TemplateName
및 객체를 포함하는 JSON TemplateData
객체입니다.
-
TemplateName - 이메일에 적용할 Template
리소스의 이름입니다.
-
TemplateData - ReplacementEmailContent
객체에 ReplacementTemplateData
속성{}
에 빈 JSON 객체가 포함된 경우 사용할 키-값 페어가 포함되어 있습니다.
-
BulkEmailEntries - 하나 이상의 Destination
객체가 포함된 배열입니다.
-
대상 - ToAddresses, CcAddresses 및 BccAddresses 속성에 정의된 이메일 수신자가 포함된 객체입니다. 이러한 주소는 모든 조합으로 사용할 수 있으며 동일한 이메일을 수신할 이메일 주소를 하나 이상 포함할 수 있습니다.
-
ReplacementTemplateData – 키-값 페어가 포함된 이스케이프된 JSON 문자열입니다. 키는 템플릿의 변수에 해당합니다. 예: {{name}}
. 값은 이메일의 변수를 대체하는 콘텐츠를 나타냅니다. (여기서 JSON 문자열이 비어 있고 로 표시되는 경우 DefaultContent
객체 내의 TemplateData
속성에 정의된 {}
키-값 페어가 사용됩니다.)
-
ConfigurationSetName – 이메일 전송 시 사용할 구성 세트의 이름입니다.
- Inline template code example
-
TemplateContent
속성(일반적으로 저장된 템플릿에 정의됨)은 TemplateData
속성과 함께 인라인으로 정의되어 이를 인라인 템플릿으로 만듭니다.
{
"FromEmailAddress": "Mary Major <mary.major@example.com>",
"DefaultContent": {
"Template": {
"TemplateContent": {
"Subject": "Greetings, {{name}}!",
"Text": "Dear {{name}},\r\nYour favorite animal is {{favoriteanimal}}.",
"Html": "<h1>Hello {{name}},</h1><p>Your favorite animal is {{favoriteanimal}}.</p>"
},
"TemplateData": "{ \"name\":\"friend\", \"favoriteanimal\":\"unknown\" }"
}
},
"BulkEmailEntries": [
{
"Destination": {
"ToAddresses": [
"anaya.iyengar@example.com"
]
},
"ReplacementEmailContent": {
"ReplacementTemplate": {
"ReplacementTemplateData": "{ \"name\":\"Anaya\", \"favoriteanimal\":\"angelfish\" }"
}
}
},
{
"Destination": {
"ToAddresses": [
"liu.jie@example.com"
]
},
"ReplacementEmailContent": {
"ReplacementTemplate": {
"ReplacementTemplateData": "{ \"name\":\"Liu\", \"favoriteanimal\":\"lion\" }"
}
}
},
{
"Destination": {
"ToAddresses": [
"shirley.rodriguez@example.com"
]
},
"ReplacementEmailContent": {
"ReplacementTemplate": {
"ReplacementTemplateData": "{ \"name\":\"Shirley\", \"favoriteanimal\":\"shark\" }"
}
}
},
{
"Destination": {
"ToAddresses": [
"richard.roe@example.com"
]
},
"ReplacementEmailContent": {
"ReplacementTemplate": {
"ReplacementTemplateData": "{}"
}
}
}
],
"ConfigurationSetName": "ConfigSet"
}
이 코드는 다음 속성을 포함하고 있습니다.
-
FromEmailAddress - 발신자의 이메일 주소입니다.
-
DefaultContent - TemplateContent
및 객체를 포함하는 JSON TemplateData
객체입니다.
-
TemplateContent - 다음 속성을 위한 컨테이너입니다.
-
SubjectPart – 이메일의 제목 줄입니다. 이 속성에는 대체 태그가 포함될 수 있습니다. 이 태그는 {{tagname}}
형식을 사용합니다. 이메일을 보낼 때 각 대상에 대해 tagname
의 값을 지정할 수 있습니다.
-
HtmlPart – 이메일의 HTML 본문입니다. 이 속성에는 대체 태그가 포함될 수 있습니다. 이전 예에는 {{name}}
및 {{favoriteanimal}}
이라는 두 가지 태그가 포함됩니다.
-
TextPart – 이메일의 텍스트 본문입니다. 이메일 클라이언트에 HTML 콘텐츠가 표시되지 않는 수신자는이 이메일 버전을 볼 수 있습니다. 이 속성에는 대체 태그도 포함될 수 있습니다.
-
TemplateData - ReplacementEmailContent
객체에 ReplacementTemplateData
속성{}
에 빈 JSON 객체가 포함된 경우 사용할 키-값 페어가 포함되어 있습니다.
-
BulkEmailEntries - 하나 이상의 Destination
객체가 포함된 배열입니다.
-
대상 - ToAddresses, CcAddresses 및 BccAddresses 속성에 정의된 이메일 수신자가 포함된 객체입니다. 이러한 주소는 모든 조합으로 사용할 수 있으며 동일한 이메일을 수신할 이메일 주소를 하나 이상 포함할 수 있습니다.
-
ReplacementTemplateData – 키-값 페어가 포함된 이스케이프된 JSON 문자열입니다. 키는와 같이이 파일의 TemplateContent
속성에 정의된 변수에 해당합니다{{name}}
. 값은 이메일의 변수를 대체하는 콘텐츠를 나타냅니다. (여기서 JSON 문자열이 비어 있고 로 표시되는 경우 DefaultContent
객체 내의 TemplateData
속성에 정의된 {}
키-값 페어가 사용됩니다.)
-
ConfigurationSetName – 이메일 전송 시 사용할 구성 세트의 이름입니다.
-
이전 단계의 코드 값을 필요에 맞게 변경한 다음 파일을 mybulkemail.json
으로 저장합니다.
-
명령줄에 다음 v2 API 명령을 입력하여 대량 이메일을 보냅니다.
aws sesv2 send-bulk-email --cli-input-json file://mybulkemail.json