SendTemplatedEmail 작업을 사용하는 Amazon SES 이메일 전송에 실패하는 이유를 확인하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 4월 3일

SendTemplatedEmail 작업을 사용하여 Amazon Simple Email Service(Amazon SES) 계정에서 메시지를 전송하려고 합니다. 그러나 일부 이메일이 전송되지 않습니다. 이 오류에 대해 자세히 알아보려면 어떻게 해야 합니까?

​해결 방법

이메일 템플릿을 사용하는 경우 Amazon SES는 사용자가 보낸 템플릿 데이터가 템플릿에 필요한 변수를 포함하는지 검증합니다. 템플릿 데이터에 잘못되거나 누락된 변수가 있는 경우 Amazon SES는 이메일을 전송할 수 없습니다. 이를 렌더링 오류라고 합니다.

SendTemplatedEmail 작업을 사용하여 이메일이 전송되지 않은 이유를 확인하려면 Amazon Simple Notification Service(Amazon SNS)를 사용하여 렌더링 오류 이벤트 알림을 설정합니다.

렌더링 오류 이벤트 알림을 설정하면 템플릿 기반 이메일 전송에 실패한 경우 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는 이메일을 전송하지 않습니다. 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 'favoritenumber' is not present in the rendering data.",
        "templateName": "ExampleTemplate"
    }
}

다음 지침에 따라 렌더링 오류를 방지합니다.

  • 템플릿 데이터에서 변수 이름의 대소문자를 확인합니다. 템플릿의 변수 이름은 대소문자를 구분합니다.
  • 템플릿 데이터가 템플릿의 모든 변수를 포함하는지 확인합니다.

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?