SMTP 서버 반환 코드 목록
List of SMTP server return codesSMTP(Simple Mail Transfer Protocol) 응답 상태 코드 목록입니다.상태 코드는 서버에 대한 클라이언트의 요청에 따라 서버에 의해 발행됩니다.
특별히 명기되어 있지 않는 한, 여기에 기재되어 있는 모든 상태 코드는 현재의 SMTP 표준의 일부입니다. RFC5321.표시된 메시지 문구는 일반적이지만 사람이 읽을 수 있는 대체 문구가 제공될 수 있습니다.
기본상태코드
「Basic Status Code」SMTP 응답은, 3 자리수의 숫자(3 문자로 송신)와 그 후에 몇개의 텍스트로 구성됩니다.이 번호는 자동 사용자(예: 이메일 클라이언트)가 다음에 입력할 상태를 결정하기 위해 사용하는 것입니다. 텍스트("텍스트 부품")는 사용자용입니다.
첫 번째 숫자는 응답이 양호한지, 나쁜지, 불완전한지를 나타냅니다.
- 2yz(긍정 완료 응답):요청한 작업이 성공적으로 완료되었습니다.
- 3yz (긍정적인 중간 응답):명령어는 승인되었지만 요청된 액션은 추가 정보가 수신될 때까지 보류됩니다.
- 4yz(일시적 부정적 완료 응답):명령어가 받아들여지지 않아 요청된 액션은 실행되지 않았습니다.다만, 에러 상태는 일시적인 것으로, 액션을 재차 요구할 수 있습니다.
- 5yz(영구적 마이너스 완료 응답):명령어가 받아들여지지 않아 요청된 액션이 실행되지 않았습니다.SMTP 클라이언트는 (같은 순서로) 정확한 요구를 반복해서는 안 됩니다.
두 번째 숫자는 특정 카테고리의 응답을 부호화합니다.
- x0z (구문):이러한 응답은 구문 오류, 기능 카테고리에 맞지 않는 구문적으로 올바른 명령어 및 구현되지 않은 명령어 또는 불필요한 명령어를 나타냅니다.
- x1z (정보):정보 요청에 대한 응답입니다.
- x2z(접속):이것들은 전송 채널에 관한 응답입니다.
- x3z : 미지정.
- x4z : 미지정.
- x5z(메일 시스템):이러한 응답은 수신자 메일 시스템의 상태를 나타냅니다.
확장 상태 코드
기본 상태 코드는 1982년에 RFC 821과 함께 처음부터 SMTP에 포함되었지만, 다소 광범위하고 임의로 확장되어 2003년에는 RFC 3463이 다소 불쾌하게 다음과 같이 기술되어 있습니다.「SMTP는 이력, 특히 제어되지 않은 사용으로 인해 응답 코드 확장 메커니즘이 손상되었습니다.
RFC 3463은 다음과 같이 "."로 구분된 3개의 숫자 필드로 구성된 보다 나은 구조를 의도한 별도의 확장 메일 시스템 상태 코드를 정의합니다.
class ". subject ". detail class = "2" / "4" / "5" subject = 1 ~3 자리 detail = 1 ~3 자리
클래스는 다음과 같이 정의됩니다.
- 2. XXX.XX 성공:긍정적인 전달 액션에 대한 보고서입니다.
- 4. XXX.XXX 지속적 일시적 장애:발송된 메시지는 유효하지만 일부 일시적인 상태가 지속되어 포기 또는 지연이 발생하고 있습니다.
- 5. XXX.XX 영구 장애:현재 형식으로 메시지를 재발송하면 해결할 수 없습니다.
일반적으로 클래스 ID는 적용되는 [1]기본 상태 코드의 첫 번째 숫자와 일치해야 합니다.
환자는 다음과 같이 정의됩니다.
- X.0.XXX 기타 또는 미정의 상태
- X.1.XXX 어드레싱 상태
- X.2.XXX 우편함 상태
- X.3.XXX 메일 시스템 상태
- X.4.XXX 네트워크 및 라우팅 상태
- X.5.XXX Mail Delivery Protocol 상태
- X.6.XXX 메시지 내용 또는 미디어 상태
- X.7.XXX 보안 또는 정책 상태
"detail" 필드의 의미는 클래스 및 서브젝트에 따라 다르며 RFC 3463 및 RFC 5248에 기재되어 있습니다.
확장 상태 코드를 사용하여 응답할 수 있는 서버는 SMTP 서버 응답의 텍스트 부분에 확장 상태 코드 뒤에 하나 이상의 공백을 붙여야 합니다.예를 들어, "221 Bye" 응답(KIT 명령 후)은 "[1]221 2.0.0 Bye"로 전송해야 합니다.
Internet Assigned Numbers Authority(IANA; 인터넷 할당 번호 기관)는 이러한 확장 상태 [2]코드의 공식 레지스트리를 유지합니다.
공통 상태 코드
여기에서는, 보다 일반적으로 볼 수 있는SMTP 상태 코드의 일부를 나타냅니다.이 목록은 완전한 것은 아니며 실제 텍스트 메시지(3필드 확장 상태 코드 외)는 다를 수 있습니다.
- 2yz의 확실한 완료
- 211 시스템 상태 또는 시스템 도움말 응답
- 214 도움말 메시지(HELP 명령에 대한 응답)
- 220 <domain> 서비스 준비 완료
- 221 <domain> 서비스 종료 전송 채널
- 221 2.0.0 잘가요. [1]
- 235 2.7.0 인증 성공 [3]
- 240 멈춰
- 250 요청한 메일 작업 OK, 완료됨
- 251 사용자가 로컬이 아닙니다.전송합니다.
- 252 사용자를 확인할 수 없지만 메시지를 전달하려고 합니다.
- 3yz 양의 중간값
- 334(Server challenge - 텍스트 부분에는 Base64로 인코딩된 챌린지가 포함되어 있습니다)
- 354 메일 입력 시작
- 4yz 일시적인 마이너스 완료
"Transient Negative"는 오류 상태가 일시적이며 조치를 다시 요청할 수 있음을 의미합니다.송신자는 명령어시퀀스의 선두로 돌아갑니다(있는 경우).
「과도」의 정확한 의미는, 2개의 다른 사이트(수신자 및 송신자 SMTP 에이전트)간에 합의할 필요가 있습니다.이 카테고리의 응답마다 시간 값이 다를 수 있지만 SMTP 클라이언트는 다시 시도해야 합니다.
- 421 서비스를 사용할 수 없습니다.전송채널을 닫습니다(서비스가 셧다운해야 한다는 것을 알고 있는 경우 이는 명령어에 대한 응답일 수 있습니다).
- 432 4.7.12 암호 전환이 필요합니다. [3]
- 450 요청된 메일 액션이 실행되지 않음: 우편함을 사용할 수 없음(예: 정책상의 이유로 우편함이 사용 중이거나 일시적으로 차단됨)
- 451 요청된 작업 중단됨: 처리 중 로컬 오류
- 451 4.4.1 IMAP 서버를 사용할 수 없습니다. [4]
- 452 요청된 작업이 수행되지 않음: 시스템 저장 공간이 부족합니다.
- 454 4.7.0 일시적인 인증 실패 [3]
- 455 서버에서 매개 변수를 수용할 수 없습니다.
- 5yz 영구 마이너스 완성
SMTP 클라이언트는 (같은 순서로) 정확한 요구를 반복해서는 안 됩니다.「영구적인」에러 조건도 몇개인가 수정할 수 있기 때문에, 유저는, SMTP 클라이언트에 대해서, 장래의 어느 시점에서 직접 조작을 실시해 커맨드 시퀀스를 재초기화하도록 지시할 수 있습니다.
- 500 구문 오류, 명령어가 인식되지 않음(명령줄이 너무 긴 등의 오류가 포함될 수 있음)
- 500 5.5.6 인증 교환 행이 너무 깁니다. [3]
- 501 매개 변수 또는 인수에 구문 오류가 있습니다.
- 501 5.5.2 Base64 클라이언트 응답을 디코딩할 수 없습니다. [3]
- 501 5.7.0 클라이언트가 시작한 인증 교환(SASL 메커니즘이 클라이언트가 인증 교환을 시작하지 않도록 지정한 경우에만 해당)
- 502 명령이 구현되지 않았습니다.
- 503 잘못된 명령어 시퀀스
- 504 명령 매개 변수가 구현되지 않았습니다.
- 504 5.5.4 인식할 수 없는 인증 유형 [3]
- 521 서버가 메일을 수신하지 않음 [5]
- 523 암호화 필요 [6]
- 530 5.7.0 인증 필요 [3]
- 534 5.7.9 인증 메커니즘이 너무 약합니다. [3]
- 535 5.7.8 인증 자격 증명이 잘못되었습니다. [3]
- 538 5.7.11 요청된 인증 메커니즘에 암호화 필요[3]
- 550 요청된 액션이 실행되지 않음: 우편함을 사용할 수 없음(메일함을 찾을 수 없음, 액세스 불가, 정책상의 이유로 명령 거부 등)
- 551 사용자가 로컬이 아닙니다.<forward-path>를 사용해 주세요.
- 552 요청된 메일 작업이 중단됨: 저장소 할당을 초과했습니다.
- 553 요청된 작업이 수행되지 않음: 사서함 이름이 허용되지 않습니다.
- 554 트랜잭션이 실패했습니다(접속 오픈 응답의 경우 "여기에 SMTP 서비스가 없습니다").
- 554 5.3.4 시스템에 비해 메시지가 너무 큽니다. [4]
- 556 도메인이 메일을 수신하지 않음 [5]
예
클라이언트 「C」가 서버 「S」에 송신하는 SMTP 접속의 예를 다음에 나타냅니다.
S: 220 ESMTP Postfix C: HELO relay.example.com S: 250 smtp.example.com, 만나서 반가워요 C: MAIL FROM: <bob@example.com > S: 250 OK C: RCPT TO: <theboss@example.com> S: 250 OK C: RCPT TO: <theboss@example.com> S: 250 OK C: RCPT TO: <theboss@example.com S: 250 S: 250 S: Ok C:LF>. <CR> <LF> C: 발신인: "Bob Example" <bob@example.com> C: 수신인: Alice Example <alice@example.com> C: C: C: theboss@example.com C: 날짜:2008년 1월 15일 (화) 16:02:43 - 0500 C : 제목 :테스트 메시지 C: C: Hello Alice.C: 메시지 본문에 5개의 헤더필드와 4개의 행이 있는 테스트메시지입니다C: 친구 C: 밥 C: . S: 250 OK: 12345 C: 큐트 S: 221 Bye {서버가 연결을 닫습니다}
다음으로 SMTP 서버가 RFC 2034에서 가져온 확장 상태 코드를 지원하는SMTP 접속의 예를 나타냅니다.
S:220dbc.mtview.ca.usSMTP서비스 C준비:EHLOymir.claremont.eduS:250-dbc.mtview.ca.us안녕하세요 S:250ENHANCEDSTATUSCODES C:<>발신:MAIL, ned @ ymir.claremont.edu>. S:2502.1.0 Originator<>ned @ ymir.claremont.edu>. C:RCPT<>:;mrose @ dbc.mtview.ca.us> 괜찮아;S:2502.1.5 수취인<>mrose @ dbc.mtview.ca.us>, 괜찮아 C:RCPT <:; 아니라고 말한다.suchuser@dbc.mtview.ca.us>S: 550 5.1.1 우편함 "nosuchuser"가 존재하지 않습니다.C:RCPT TO:<remoteuser@isi.edu>S:551-5.7.1 리모트호스트로의 전송이 무효가 되어 있다S:551 5.7.1 포워더 C:DATA S:354 메시지 송신 후 CRLF로 종료됩니다.CRLF...C: . S: 250 2.6.0 메시지 수락 C: QUIT S: 221 2.0.0 Goodbye {서버가 연결을 닫습니다}