Amazon Simple Email Service(Amazon SES) Simple Mail Transfer Protocol(SMTP)이 시간 초과됩니다.
간략한 설명
클라이언트가 퍼블릭 Amazon SES 엔드포인트에 대한 TCP 연결을 설정할 수 없으면 연결 시간 초과 문제가 발생합니다. Amazon SES의 SMTP 연결 또는 시간 초과 문제를 해결하려면, 우선 애플리케이션의 TCP 연결 문제를 해결해야 합니다. TCP 연결이 성공하면 그 다음에 SSL/TLS 협상 문제를 해결하십시오.
기본적으로 Amazon Elastic Compute Cloud(Amazon EC2)는 모든 Amazon EC2 인스턴스의 포트 25에서 Amazon Virtual Private Cloud(Amazon VPC) 송신 트래픽을 제한합니다. SMTP 포트 25에서 트래픽이 필요한 애플리케이션인 경우, 이 제한의 제거를 요청할 수 있습니다. 아니면 포트 25에 있는 기본 제한이 없는 포트 587(STARTTLS) 및 포트 465(TLS Wrapper)에서 SMTP 연결을 사용하십시오.
해결 방법
애플리케이션의 TCP 연결 문제 해결
다음 단계를 완료하십시오.
-
다음 telnet 명령을 실행합니다.
telnet email-smtp.us-east-1.amazonaws.com 587
telnet email-smtp.us-east-1.amazonaws.com 25
telnet email-smtp.us-east-1.amazonaws.com 465
참고: email-smtp.us-east-1.amazonaws.com을 사용 중인 Amazon SES SMTP 엔드포인트로 바꿉니다.
-또는-
다음 netcat (nc) 명령을 실행합니다.
nc -vz email-smtp.us-east-1.amazonaws.com 587
nc -vz email-smtp.us-east-1.amazonaws.com 25
nc -vz email-smtp.us-east-1.amazonaws.com 465
-또는-
Windows PowerShell에서 다음 명령을 실행하여 Amazon SES SMTP 서버에 연결합니다.
Test-NetConnection -Port 587 --ComputerName email-smtp.us-west-2.amazonaws.com
-
출력을 기록해 두십시오. 연결이 성공하면 SSL/TLS 협상 문제 해결 섹션으로 계속 진행합니다. 연결이 실패하면 3단계로 진행합니다. 연결이 성공하면 telnet 명령이 다음과 유사한 출력을 반환합니다.
Trying 35.170.126.22...
Connected to email-smtp.us-east-1.amazonaws.com.
Escape character is '^]'.
220 email-smtp.amazonaws.com ESMTP SimpleEmailService-d-A12BCD3EF example0mJncW410pSau
연결이 시간 초과되면 telnet 명령이 다음과 유사한 출력을 반환합니다.
Trying 18.232.32.150...
telnet: connect to address 18.232.32.150: Connection timed out
연결이 성공하면 Test-NetConnection 명령이 다음과 유사한 출력을 반환합니다.
ComputerName : email-smtp.us-west-2.amazonaws.com
RemoteAddress : 198.51.100.126
RemotePort : 587
InterfaceAlias : Ethernet
SourceAddress : 203.0.113.46
TcpTestSucceeded : True
연결이 시간 초과되면 Test-NetConnection 명령이 다음과 유사한 출력을 반환합니다.
WARNING: Ping to 52.39.11.136 failed with status: TimedOut
ComputerName : email-smtp.us-west-2.amazonaws.com
RemoteAddress : 35.155.47.104
RemotePort : 587
InterfaceAlias : Ethernet 2
SourceAddress : 10.0.0.140
PingSucceeded : False
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded : False
-
연결이 실패한 경우, 로컬 방화벽, 경로 및 네트워크 액세스 제어 목록(네트워크 ACL)이 사용 중인 SMTP 포트에서 트래픽을 허용하는지 확인하십시오. 또한 전송 중인 애플리케이션이 인터넷에 액세스할 수 있는지도 확인하십시오.
예를 들어 SMTP 엔드포인트에 이메일을 보내고 연결하는 데 EC2 인스턴스를 사용 중인 경우, 다음을 확인합니다.
- 보안 그룹 아웃바운드 규칙이 TCP 포트 25, 587 또는 465에서 SMTP 서버로의 트래픽을 허용합니다.
- 네트워크 ACL 아웃바운드 규칙이 TCP 포트 25, 587 또는 465에서 SMTP 서버로의 트래픽을 허용합니다.
- 네트워크 ACL 인바운드 규칙이 TCP 포트 1024-65535에서 SMTP 서버로부터의 트래픽을 허용합니다.
- 인스턴스가 인터넷에 연결되어 있습니다.
SSL/TLS 협상 문제 해결
TCP 연결이 성공했는데도 여전히 연결 또는 시간 초과 문제가 발생하는 경우, 다음 단계를 완료하여 SSL/TLS 문제가 있는지 검사합니다.
-
Amazon SES SMTP 서버에 연결합니다.
EC2 Linux 인스턴스의 경우, 다음 명령을 실행합니다.
openssl s_client -crlf -connect email-smtp.us-east-1.amazonaws.com:465
참고: email-smtp.us-east-1.amazonaws.com을 사용 중인 Amazon SES SMTP 엔드포인트로 바꿉니다.
EC2 Windows 인스턴스의 경우, 명령줄을 사용하여 Amazon SES SMTP 인터페이스에 대한 연결 테스트의 PowerShell 탭을 참조하십시오.
-
SSL 문제를 확인하려면 다음 명령을 실행합니다.
openssl s_client -crlf -quiet -connect email-smtp.us-west-2.amazonaws.com:465
연결이 성공하면 다음과 유사한 SMTP 220 응답이 표시됩니다.
depth=2 C = US, O = Amazon, CN = Amazon Root CA 1
verify return:1
depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazon
verify return:1
depth=0 CN = email-smtp.us-west-2.amazonaws.com
verify return:1
220 email-smtp.amazonaws.com ESMTP SimpleEmailService-d-VCSHDP1YZ A1b2C3d4E5f6G7h8I9j0
-
TLS 문제를 확인하려면 다음 명령을 실행합니다.
openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.us-west-2.amazonaws.com:587
연결이 성공하면 다음과 유사한 SMTP 250 응답이 표시됩니다.
depth=2 C = US, O = Amazon, CN = Amazon Root CA 1
verify return:1
depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazon
verify return:1
depth=0 CN = email-smtp.us-west-2.amazonaws.com
verify return:1
250 Ok
-
SSL에 SMTP 220 응답, TLS에 SMTP 250 응답이 표시되지 않는 경우 다음을 확인하십시오.
SSL/TLS 인증서 저장소를 올바로 구성했습니다.
전송 중인 애플리케이션에 인증서로 이동하는 올바른 경로가 있습니다.
서버에 Amazon SES 인증서를 설치했습니다.
참고: 올바른 인증서를 설치했는지 확인하려면 Amazon Trust Services 마이그레이션 관련 정보의 인증서 관련 정보를 참조하십시오.
관련 정보
Amazon SES SMTP 인터페이스를 사용하여 이메일 전송