내용으로 건너뛰기

Amazon SES SendTemplatedEmail API를 사용한 이메일 전송 실패 문제를 해결하려면 어떻게 해야 합니까?

2분 분량
0

Amazon Simple Email Service(Amazon SES) SendTemplatedEmail API 작업을 사용해 이메일을 보냈습니다. 그런데 Amazon SES가 이메일을 전송하지 않았습니다.

간략한 설명

이메일 템플릿을 사용하면 Amazon SES가 보내는 템플릿 데이터에 템플릿에 필요한 변수가 포함되어 있는지 검증합니다. 템플릿 데이터에 규정을 준수하지 않는 변수가 포함되었거나 변수가 누락된 경우, Amazon SES는 이메일을 전송할 수 없습니다.

해결 방법

Amazon SNS를 사용하여 렌더링 실패 이벤트 알림을 설정합니다. 그런 다음, 렌더링 실패 이벤트 알림을 검토하여 SendTemplatedEmail API 작업을 사용하면 Amazon SES가 이메일을 전송하지 않은 이유를 알아봅니다.

렌더링 실패 이벤트 알림을 설정하고 나면 이메일 템플릿에서 보낸 전송이 실패하는 경우 Amazon SNS 알림을 받게 됩니다. 알림 오류 메시지에 렌더링 실패를 초래한 템플릿 변수에 관한 정보가 포함되어 있습니다.

예를 들어, 다음 템플릿에는 변수 namefavoritecolor가 포함되어 있습니다.

{  "Template": {
    "TemplateName": "ExampleTemplate",
    "SubjectPart": "Hello, {{name}}!",
    "HtmlPart": "<h1>Hello {{name}},</h1><p>Your favorite color is {{favoritecolor}}.</p>",
    "TextPart": "Dear {{name}},\r\nYour favorite color is {{favoritecolor}}."
  }
}

앞선 템플릿 데이터를 보내면 Amazon SES가 해당 이메일을 전송할 수 없습니다. 템플릿에 favoritecolor 변수가 없기 때문입니다.

중요: 템플릿에 favoritenumber와 같은 추가 변수를 포함해도 오류를 발생시키지 않습니다. 하지만 템플릿에 포함된 모든 변수는 템플릿 데이터 내에 대소문자까지 일치하는 대응 항목이 있어야 합니다.

올바른 변수를 포함한 템플릿 예시:

"TemplateData": "{ \"name\":\"Jane\", \"favoritenumber\": \"10\" }"

렌더링 실패 이벤트 알림 예시:

{    "eventType": "Rendering Failure",
    "mail": {
        "timestamp": "2019-09-09T04:38:19.788Z",
        "source": "sender@example.com",
        "sourceArn": "arn:aws:ses:us-west-2:1234567890123:identity/sender@example.com",
        "sendingAccountId": "1234567890123",
        "messageId": "01010161a734a0eb-a706827a-3bda-490f-8eaa-63cf4b00d10c-000000",
        "destination": [
            "receiver@example.com"
        ],
        "headersTruncated": false,
        "tags": {
            "ses:configuration-set": [
                "RenderFailure"
            ]
        }
    },
    "failure": {
        "errorMessage": "Attribute 'favoritecolor' is not present in the rendering data.",
        "templateName": "ExampleTemplate"
    }
}

렌더링 실패를 방지하려면 다음 모범 사례를 따르십시오.

  • 템플릿 데이터의 변수 이름 대문자 표기가 올바른지 확인합니다. 템플릿의 변수 이름은 대소문자를 구분합니다.
  • 템플릿 데이터에 템플릿의 모든 변수를 포함하는지 확인합니다.
  • 확인된 이메일 주소 또는 도메인에서 메시지를 보내야 하며 메시지의 최대 크기는 10MB입니다.

관련 정보

템플릿을 사용해 Amazon SES API로 개인화된 이메일 보내기

Amazon SES를 통해 보낸 이메일이 전송되지 않는 이유는 무엇인가요?

Amazon SES 전송 문제