Amazon SES SMTP 문제 - Amazon Simple Email Service

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

Amazon SES SMTP 문제

이 단원에는 Amazon SES Simple Mail Transfer Protocol(SMTP) 인터페이스를 통한 이메일 전송과 관련된 몇 가지 일반적인 문제에 대한 해결 방법이 나와 있습니다. 또한 Amazon SES에서 반환하는 SMTP 응답 코드 목록도 포함되어 있습니다.

Amazon SES SMTP 인터페이스를 통한 이메일 전송에 대한 자세한 내용은 Amazon SES SMTP 인터페이스를 사용하여 이메일 보내기 단원을 참조하십시오.

  • 에 연결할 수 없습니다. Amazon SES SMTP 끝점.

    Amazon SES SMTP 엔드포인트 연결 문제는 대부분 다음 문제와 관련이 있습니다.

    • 잘못된 자격 증명 – SMTP 엔드포인트에 연결할 때 사용하는 자격 증명이 AWS 자격 증명과 다릅니다. SMTP 자격 증명을 얻으려면 Amazon SES SMTP 자격 증명 받기 단원을 참조하십시오. 자격 증명에 대한 자세한 내용은 유형 Amazon SES 자격 증명을 참조하십시오.

    • 네트워크 또는 방화벽 문제 – 네트워크가 이메일을 전송하려는 포트를 통한 아웃바운드 연결을 차단한 것일 수 있습니다. 로컬 네트워크의 문제로 인해 연결 문제가 발생하는지 확인하려면 port를 사용하려는 포트(일반적으로 465, 587, 2465 또는 2587)로 바꿔 명령줄에 telnet email-smtp.us-west-2.amazonaws.com port 명령을 입력합니다.

      이 명령을 사용하여 SMTP 서버에 연결할 수 있으며 TLS 래퍼 또는 STARTTLS를 사용하여 Amazon SES에 연결하려는 경우 명령줄을 사용하여 Amazon SES SMTP 인터페이스에 대한 연결 테스트에 나온 절차를 완료합니다.

      telnet 또는 openssl을 사용하여 Amazon SES SMTP 엔드포인트에 연결할 수 없는 경우 네트워크 안의 무언가(예: 방화벽)가 사용하려는 포트를 통한 아웃바운드 연결을 차단하는 것입니다. 네트워크 관리자와 함께 문제를 진단 및 해결하십시오.

  • 을(를) (으)로 전송 중입니다. Amazon SES (으)로부터 Amazon EC2 포트 25를 사용하는 인스턴스에서 시간 초과 오류가 수신됩니다.

    Amazon EC2는 기본적으로 포트 25를 제한합니다. 이러한 제한을 제거하려면 Amazon EC2 이메일 전송 제한 제거 요청를 제출하십시오. 포트 465 또는 포트 587을 사용하여 Amazon SES에 연결할 수도 있으며 이들 포트에서는 연결이 제한되지 않습니다.

  • 네트워크 오류 때문에 이메일이 삭제됨

    애플리케이션이 Amazon SES SMTP 엔드포인트에 연결할 때 재시도 로직을 사용하는지, 애플리케이션이 네트워크 오류 시 메시지 전송을 감지 및 재시도할 수 있는지 확인합니다. SMTP는 버보스 프로토콜이며 이 프로토콜을 사용하여 이메일을 보내려면 네트워크를 여러 번 왕복해야 합니다. SMTP의 특성상 네트워크 오류의 가능성이 증가합니다.

  • SMTP 엔드포인트와 연결이 끊김.

    연결 끊김은 주로 다음 문제로 인해 발생합니다.

    • MTU 크기 – 시간 초과 오류 메시지를 수신하는 경우 Amazon SES SMTP 인터페이스와 연결하기 위해 사용 중인 컴퓨터의 네트워크 인터페이스의 최대 전송 단위(MTU)가 너무 큰 것일 수 있습니다. 이 문제를 해결하려면 해당 컴퓨터의 MTU 크기를 1,500바이트로 설정합니다.

      Windows, Linux 및 macOS 운영 체제에서 MTU 크기를 설정하는 방법에 대한 자세한 내용은 다음을 참조하십시오. 쿼리가 클라이언트에 중단되어 클러스터에 도달하지 않음 에서 Amazon Redshift Cluster Management Guide.

      의 MTU 크기 설정에 대한 자세한 내용은 Amazon EC2 인스턴스, 참조 EC2 인스턴스에 대한 네트워크 최대 전송 단위(MTU) 에서 Linux 인스턴스용 Amazon EC2 사용 설명서.

    • 장기 연결 – Amazon SES SMTP 엔드포인트는 Elastic Load Balancer(ELB) 뒤의 Amazon EC2 인스턴스 플릿에서 실행됩니다. 시스템이 최신 상태 및 내결함성을 유지하기 위해 활성 Amazon EC2 인스턴스가 주기적으로 종료되고 새 인스턴스로 교체됩니다. 애플리케이션이 ELB를 통해 Amazon EC2 인스턴스와 연결되므로 Amazon EC2 인스턴스가 종료되면 연결이 무효화됩니다. 단일 SMTP 연결을 통해 고정된 수의 메시지를 전송한 후, 또는 SMTP 연결이 일정 시간 활성 상태를 유지한 후 새 SMTP 연결을 설정해야 합니다. 애플리케이션이 호스팅되는 위치와 Amazon SES로 이메일을 제출하는 방식에 따라 적절한 임계값을 찾는 실험이 필요합니다.

  • 의 IP 주소를 알고 싶을 때 Amazon SES SMTP 메일 서버를 사용하여 네트워크에서 IP 주소를 화이트리스트에 추가할 수 있습니다.

    Amazon SES SMTP 엔드포인트의 IP 주소는 로드 밸런서 뒤에 있습니다. 따라서 이 IP 주소는 자주 바뀝니다. Amazon SES 엔드포인트의 모든 IP 주소에 대한 명확한 목록을 제공하는 것은 불가능합니다. 개별 IP 주소를 화이트리스팅하는 대신 amazonses.com 도메인을 화이트리스팅하는 것이 좋습니다.

Amazon SES에서 반환하는 SMTP 응답 코드

이 단원에는 Amazon SES SMTP 인터페이스에서 반환하는 응답 코드 목록이 나와 있습니다.

400 오류가 수신되는 SMTP 요청을 재시도해야 합니다. 갈수록 더 오래 대기했다가 요청을 재시도하도록 시스템을 구현하는 것이 좋습니다. 예를 들어, 재시도하기 전에는 5초를 대기하고, 그 다음 재시도 시에는 10초를, 그 다음에는 30초를 대기하는 식입니다. 세 번째 재시도에 실패하면 20분을 기다린 다음 이러한 프로세스를 반복합니다. 지수 재시도 정책을 사용하는 구현 예제를 보려면 AWS 메시징 및 타게팅 블로그의 조절 - 최대 송신률 초과" 오류를 처리하는 방법을 참조하십시오.

참고

AWS SDK는 재시도 로직을 자동으로 구현하지만 SMTP 대신 HTTPS 인터페이스를 사용합니다.

500 오류가 발생하면 요청을 다시 제출하기 전에 요청을 수정해 문제를 해결해야 합니다. 예를 들어, AWS 인증 자격 증명이 잘못된 경우 요청을 다시 보내기 전에 올바른 자격 증명을 사용하도록 애플리케이션을 업데이트해야 합니다.

설명 응답 코드 추가 정보

인증 성공

235 Authentication successful

SMTP 클라이언트가 성공적으로 연결되어 SMTP 서버에 로그인했습니다.

전송 성공

250 Ok MessageID

MessageID 은(는) 고유한 문자열로 Amazon SES 은 을 사용하여 메시지를 식별합니다.

서비스 사용 불가

421 Too many concurrent SMTP connections

현재, SMTP 서버에 대한 연결이 너무 많아 Amazon SES가 요청을 처리할 수 없습니다.

로컬 처리 오류

451 Temporary service failure

Amazon SES에서 요청을 처리할 수 없습니다. 요청이 처리되지 못하도록 막는 요청 관련 문제가 있을 수 있습니다.

Timeout

451 Timeout waiting for data from client

요청 간에 너무 많은 시간이 경과하여 SMTP 서버가 연결을 차단했습니다.

일일 전송 할당량을 초과함

454 Throttling failure: Daily message quota exceeded

Amazon SES가 24시간 기준으로 전송을 허용한 최대 이메일 수를 초과했습니다. 자세한 정보는 관리 Amazon SES 할당량 보내기 단원을 참조하십시오.

최대 전송 속도를 초과함

454 Throttling failure: Maximum sending rate exceeded

Amazon SES가 초당 전송할 수 있도록 허용한 최대 이메일 수를 초과했습니다. 자세한 정보는 관리 Amazon SES 할당량 보내기 단원을 참조하십시오.

SMTP 자격 증명 검증 시 Amazon SES 문제

454 Temporary authentication failure

이 문제의 원인일 수 있는 문제에는 다음이 포함되지만 이에 국한되지는 않습니다.

  • 이메일 발송 애플리케이션과 Amazon SES 간 암호화에 문제가 있습니다. Amazon SES에 연결할 때는 암호화된 연결을 사용해야 합니다. 자세한 정보는 Amazon SES SMTP 엔드포인트에 연결 단원을 참조하십시오.

  • Amazon SES에 문제가 있는 것일 수 있습니다. 업데이트하려면 AWS 서비스 상태 대시보드를 클릭하십시오.

요청 수신 중 오류 발생

454 Temporary service failure

Amazon SES에서 요청을 수신하지 못했습니다. 따라서 메시지가 전송되지 않았습니다.

잘못된 자격 증명

530 Authentication required

이메일을 보내는 데 사용하는 애플리케이션이 Amazon SES SMTP 인터페이스에 연결할 때 인증을 시도하지 않았습니다.

인증 자격 증명이 유효하지 않음

535 Authentication Credentials Invalid

이메일을 전송하는 데 사용하는 애플리케이션이 Amazon SES에 대해 올바른 SMTP 자격 증명을 제공하지 않았습니다. SMTP 자격 증명과 AWS 자격 증명은 동일하지 않습니다. 자세한 정보는 Amazon SES SMTP 자격 증명 받기 단원을 참조하십시오.

계정이 Amazon SES에 가입되지 않음

535 Account not subscribed to SES

SMTP 자격 증명을 소유한 AWS 계정이 Amazon SES에 가입되지 않았습니다.

메시지가 너무 김

552 Message is too long.

전송하려는 메시지의 크기가 10MB보다 큽니다.

계정이 Amazon SES에 가입되지 않음

535 Account not subscribed to SES

SMTP 자격 증명을 소유한 AWS 계정이 Amazon SES에 가입되지 않았습니다.

사용자가 Amazon SES SMTP 엔드포인트를 호출할 권한이 없음

554 Access denied: User UserARN is not authorized to perform ses:SendRawEmail on resource IdentityARN

SMTP 자격 증명을 소유한 사용자의 AWS Identity and Access Management(IAM) 정책 또는 Amazon SES 전송 권한 부여 정책이 Amazon SES SMTP 엔드포인트를 호출하도록 허용되지 않습니다.

확인되지 않은 이메일 주소

554 Message rejected: Email address is not verified. The following identities failed the check in region region: identity0, identity1, identity2

Amazon SES 계정에서 이메일을 전송하도록 확인되지 않은 이메일 주소 또는 도메인에서 이메일을 전송하려고 합니다. 이 오류는 "From", "Source", "Sender" 또는 "Return-Path" 주소에 해당할 수 있습니다. 계정이 여전히 샌드박스에 있을 경우 Amazon SES 메일박스 시뮬레이터에서 제공하는 수신자를 제외한 모든 수신자 이메일 주소를 확인해야 합니다. Amazon SES에서 확인 점검에 실패한 ID를 모두 볼 수 없는 경우 오류 메시지가 마침표 세 개(...)로 끝납니다.

참고

Amazon SES는 여러 AWS 리전에 엔드포인트가 있으며 이메일 주소 확인 상태는 AWS 리전마다 서로 다릅니다. 사용하려는 AWS 리전에서 각 발신자에 대해 확인 프로세스를 완료해야 합니다.