Amazon SES를 통한 이메일 전송 작동 방식 - Amazon Simple Email Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon SES를 통한 이메일 전송 작동 방식

이 주제에서는 SES를 통해 이메일을 전송할 때 어떤 과정을 거치는지 설명하고 이메일 전송 후 발생할 수 있는 다양한 결과에 대해 설명합니다. 다음 그림은 전송 프로세스의 종합적 개요입니다.

Email sending process with Amazon SES, showing potential bounces, complaints, and delivery outcomes.
  1. 이메일 발신자 역할을 담당하는 클라이언트 애플리케이션이 SES에 하나 이상의 수신자에게 이메일을 전송하는 요청을 합니다.

  2. 요청이 유효하면 SES가 이메일을 수락합니다.

  3. SES는 인터넷을 통해 수신자의 수신 장치에 메시지를 보냅니다. SES로 전달된 메시지는 일반적으로 즉시 전송됩니다. 통상적으로 최초 전송 시도가 몇 밀리초 이내에 이루어집니다.

  4. 이 시점에서 다양한 가능성이 존재합니다. 예:

    1. ISP가 성공적으로 메시지를 수신자의 받은 편지함으로 전송합니다.

    2. 수신자의 이메일 주소가 존재하지 않습니다. 따라서 ISP가 SES로 반송 메일 알림을 전송합니다. 그러면 SES가 알림을 발신자에게 전달합니다.

    3. 수신자가 메시지를 수신하지만 이를 스팸으로 여겨 ISP에게 수신 거부를 제기합니다. SES와의 피드백 루프가 설정되어 있는 ISP가 SES로 수신 거부를 전송하고 SES가 이를 발신자에게 전달합니다.

다음 섹션에서는 발신자가 SES로 이메일 요청을 보낸 후, 그리고 SES가 수신자에게 이메일 메시지를 전송한 후 발생 가능한 개별 결과를 알아봅니다.

발신자가 SES로 이메일 요청을 보낸 후

발신자가 SES로 이메일 전송 요청을 할 경우 호출이 성공할 수도 실패할 수도 있습니다. 다음 단원에서 각 경우에 어떤 일이 벌어지는지 설명합니다.

전송 요청 성공

SES에 대한 요청이 성공하면 SES가 발신자에게 성공 응답을 반환합니다. 이 메시지에는 요청을 고유하게 식별하는 문자열인 메시지 ID가 포함됩니다. 메시지 ID를 사용하여 전송된 이메일을 식별하거나 전송 중에 발생한 문제를 추적할 수 있습니다(SES가 이메일을 수락할 때 반환하는 SES 메시지 ID와 식별자 사이의 자체 매핑을 저장해야 함). 그런 다음 SES가 요청 파라미터를 기반으로 이메일 메시지를 수집하고 메시지에서 의심스러운 콘텐츠 및 바이러스를 검사한 다음 간이 전자 우편 전송 프로토콜(SMTP)을 사용하여 인터넷을 통해 전송합니다. 메시지는 일반적으로 즉시 전송됩니다. 통상적으로 최초 전송 시도가 몇 밀리초 이내에 이루어집니다.

참고

SES가 발신자의 요청을 수락한 다음 메시지에 바이러스가 포함된 것을 확인할 경우 SES는 해당 메시지 처리를 중지하고 해당 메시지를 수신자의 메일 서버로 전송하지 않습니다.

전송 요청 실패

발신자가 SES로 보낸 이메일 전송 요청이 실패할 경우 SES가 발신자에게 오류를 반환하고 이메일을 거부합니다. 요청이 실패하는 원인은 여러 가지가 있을 수 있습니다. 예를 들어 요청이 적절한 형식이 아니거나 발신자가 이메일 주소를 확인하지 않았을 수 있습니다.

사용자가 요청 실패 여부를 확인할 수 있는 방법은 SES를 호출한 방법에 따라 다릅니다. 다음 예제는 오류 및 예외가 반환되는 방식입니다.

  • 쿼리(HTTPS) API(SendEmail 또는 SendRawEmail)를 통해 SES를 호출하는 경우 작업이 오류를 반환합니다. 자세한 내용은 Amazon Simple Email Service API 참조 단원을 참조하십시오.

  • 예외를 사용하는 프로그래밍 언어에 AWS SDK를 사용하는 경우 SES에 대한 호출은 MessageRejectedException을 발생시킵니다. (예외의 이름은 SDK에 따라 약간 다를 수 있습니다.)

  • SMTP 인터페이스를 사용하는 경우 발신자가 SMTP 응답 코드를 수신하지만, 오류가 전달되는 방식은 발신자의 클라이언트에 따라 달라집니다. 클라이언트에 따라 오류 코드가 표시될 수도, 표시되지 않을 수도 있습니다.

SES를 통해 이메일을 전송할 때 발생할 수 있는 오류에 대한 자세한 내용은 Amazon SES 이메일 전송 오류 섹션을 참조하세요.

Amazon SES가 이메일을 전송한 후

발신자가 SES로 보낸 요청이 성공할 경우 SES가 이메일을 전송하고 다음 결과 중 하나가 발생합니다.

  • 이메일이 성공적으로 전송되고 수신자가 이메일을 거부하지 않음 – ISP가 이메일을 수락하고 ISP가 이메일을 수신자에게 전송합니다. 다음 그림에 전송 성공이 나와 있습니다.

    Email flow diagram showing sender, Amazon SES, receiver ISP, and recipient with successful delivery.
  • 하드 바운스 – 영구적 조건으로 인해 ISP가 거부했거나 이메일 주소가 SES 금지 목록에 있어 SES가 거부한 이메일입니다. SES 금지 목록에는 최근 SES 고객에게 하드 바운스를 발생시킨 이메일 주소가 들어 있습니다. ISP에서의 하드 바운스는 수신자 주소가 유효하지 않기 때문에 발생할 수 있습니다. 하드 바운스 알림은 ISP에서 SES로 다시 전송되고, SES는 발신자의 설정에 따라 이메일 또는 Amazon Simple Notification Service(Amazon SNS)를 통해 발신자에게 이를 알립니다. SES는 동일한 방법으로 발신자에게 금지 목록 반송 메일 알림을 전송합니다. 다음 그림에는 ISP로부터 시작하는 하드 바운스의 경로가 나와 있습니다.

    Email flow diagram showing sender, Amazon SES, and receiver with arrows indicating message path.
  • 소프트 바운스 – ISP는 일시적 상태(예: ISP가 처리할 요청이 너무 많거나 수신자의 메일박스가 가득 차 있음)로 인해 수신자에게 이메일을 전송하지 못할 수 있습니다. 도메인이 존재하지 않는 경우에도 소프트 바운스가 발생할 수 있습니다 ISP는 SES로 소프트 바운스 알림을 다시 전송합니다. 또는 도메인이 없는 경우 SES가 해당 도메인의 이메일 서버를 찾을 수 없습니다. 두 경우 모두 SES는 이메일 전송을 장시간 재시도합니다. SES가 재시도에서도 이메일을 전송할 수 없는 경우에는 이메일 또는 Amazon SNS를 통해 반송 메일 알림을 전송합니다. 재시도에서 SES가 수신자에게 이메일을 전송할 수 있으면 전송은 성공입니다. 다음 그림에는 소프트 바운스가 나와 있습니다. 이 경우, SES가 이메일 전송을 재시도하여, 결국 ISP가 수신자에게 이메일을 전송합니다.

    Email flow diagram showing sender, Amazon SES, receiver, and recipient with soft bounce scenario.
  • 수신 거부 – ISP가 수락하여 수신자에게 전송되었지만 수신자가 이 이메일을 스팸으로 간주하여 이메일 클라이언트에서 ‘스팸으로 표시’와 같은 버튼을 클릭한 이메일입니다. SES에 ISP와의 피드백 루프가 설정되어 있는 경우, 수신 거부 알림이 SES에 전송되고 SES는 이 수신 거부 알림을 발신자에게 전달합니다. 대부분의 ISP가 수신 거부를 제출한 수신자의 이메일 주소를 제공하지 않으므로, SES가 전달하는 수신 거부 알림은 원래 메시지의 수신자 그리고 SES에 수신 거부를 보낸 ISP를 기준으로 수신 거부를 제출했을 수 있는 수신자의 목록을 발신자에게 제공합니다. 다음 그림에는 수신 거부의 경로가 나와 있습니다.

    Diagram showing email flow from sender through Amazon SES, ISP, and recipient, with complaint feedback loop.
  • 자동 응답 – 이 이메일은 ISP가 수락하여 수신자에게 전송한 이메일입니다. 그런 다음 ISP가 부재중(OOTO) 메시지와 같은 자동 응답을 SES로 전송합니다. 그러면 SES가 자동 응답 알림을 발신자에게 전달합니다. 다음 그림에는 자동 응답이 나와 있습니다.

    Diagram showing email flow from sender through Amazon SES, ISP, recipient, and auto-response back to sender.

    자동 응답을 생성하는 메시지는 SES 지원 프로그램이 전송을 재시도하지 않도록 하세요.

    작은 정보

    SES 메일박스 시뮬레이터를 사용하여 전송 성공, 반송 메일, 수신 거부, OOTO 또는 주소가 금지 목록에 포함된 경우의 결과를 테스트할 수 있습니다. 자세한 내용은 수동으로 메일박스 시뮬레이터 사용 단원을 참조하십시오.