smtp(simple mail transfer protocol)netmemo.tistory.com/attachment/jm253.ppt · ppt file · web...
TRANSCRIPT
SMTP 개념
SMTPclient
SMTPserver
• 하나 또는 그 이상의 수신자에게 단일 메시지를 전송• 문자 , 비디오 , 음성 , 또는 그래픽을 포함하는 메시지를 전송• 인터넷 외부 네트워크상의 사용자에게 메시지를 전송
Internet
UserUser
TCP임시 port
TCP할당된 port 25
SMTP 개념 SMTP 는 UA(User Agent) 와 MTA(Mail Transfer Agent
로 분해할 수 있다 UA : 메시지를 준비 , 봉투생성 봉투 안에 메시지 삽입 . MTA : 인터넷상으로 메시지 전송
SMTP 개념 중계시스템은 TCP/IP 프로토콜을 사용하지 않는 사이트가 TCP/
IP 프로토콜을 사용이 불확실한 다른 사이트의 E- 메일 사용자에게 메일 전송을 가능하게 한다 . (Mail gateway 를 사용 )
User Agent(UA) 메일을 송수신하기 위한 프로그램
MH, Berkeley Mail, Elm, Zmail, Mush 송신 메일
Envelope 송신자 / 수신자 주소 , 기타 정보
Message Header 와 body 로 구성 Header
송신자 / 수신자 , 메시지의 주제 , 기타 정보
Body Actual information
수신 메일
Addresses Unique 한 address 를 부여한다
Local part User mailbox 라 불리는 special file 의 name 을 정의
Domain Name Mail exchanger 를 통하여 mail 을 receive/send 한다 Email 주소는 gateway 와 실제 recipient 의 주소를 정의하고 이를 통하여 메일을 주고받는다
Delayed delivery SMTP 는 delayed delivery 를 허용한다 Server-Site delay
Create a message → spool(storage structure) → transfer periodically for check mail
Mail 이 저장된 spool 에서 주기적 (10 에서 30 초마다 ) 보낼 수 있는지 검사하고 시간 초과 (3 일에서 5 일 )하면 송신자에게 반송된다 Receiver-Site delay
수신자의 메일박스에 저장된다 Intermediate delay
SMTP 는 intermediate delay 를 허용하고 적절할 때에 전송한다
Aliases 여러 가지 서로 다른 e-mail 주소를 나타내기 위해서
alias 사용 : one-to-many alias expansion 한 사용자는 여러 e-mail 주소로 정의될 수 있다 : many-
to-one alias expansion
SMTP 명령과 응답 SMTP 는 MTA client 와 server 사이에서 메시지를 주고 받기 위해서 commands 와
response 를 사용한다
Carriage return 과 line feed 에 의해 종료된다 Command
SMTP 명령 (1)
HELO
RCPT
DATA
sender 와 receiver 간의 전송채널을 만든다 .» HELO:challenger.atc.fhda.edu메일 발신자 확인하고 메일 발송을 알린다 .» MAIL FROM:[email protected]메일 수신자를 알린다 .» RCPT TO:[email protected]메일의 내용을 receiver-SMTP 에 전송 , 종료는 ‘ .’ .» DATA» This is the message» .
Command Definition
SMTP 명령 (2)
VRFY
EXPN
HELP
NOOP
QUIT
이름이 유효한 수신자인가를 확인하기 위해서 요청 .» VRFY:[email protected]메일링 리스트를 확장하도록 수신 호스트에 요청 .» EXPN:x y z보내진 명령의 정보를 수신자에게 요청 .» HELP:mail수신자의 상태를 체크하기 위해» NOOP메시지를 종료 .» QUIT
Command Definition
SMTP 명령 (3)
TURN
SEND
SMOL
SAML
RSET
송신자와 수신자의 상태를 바꿈 .» TURN수신자의 터미널로 수신자가 로그인 상태일 때 송신» SEND FROM:[email protected] 이 수신자의 mailbox 또는 터미널로 전송 .수신자가 log in 상태가 아니면 mailbox 로 전송 .» SMOL FROM:[email protected] 이 수신자의 mailbox 그리고 터미널로 전송 .수신자가 log in 상태이면 양쪽 아니면 mailbox 로 전송» SAML FROM:[email protected]현재 메일 전송을 취소 .송신자와 수신자에 대한 저장된 정보가 삭제 .» RSET
Command Definition
SMTP 응답 (1)
1yz
2yz
3yz
4yz
5yz
현재 SMTP 에서 사용되지 않는다 .
요청을 성공적으로 수행 했고 , 새로운 명령을 시작할 수 있다 .요청을 승인되고 수행을 위해 추가정보 필요 .
요청을 거절했지만 에러는 일시적인 현상으로명령을 다시 전송할 수 있다 .요청을 거절 , 명령을 재 전송할 수 없다 .
Code Definition
Mail Transfer phases 메시지 전송
1. 메시지의 송신자를 알리기 위해 MAIL 메시지를 전송2. code 250(ok) 로 응답3. 수신자의 Address 를 포함하는 RCTP 메시지를 전송4. code 250(ok) 로 응답5. 메시지전송을 초기화하기 위해서 DATA 메시지를 전송6. 메일 입력 시작 Code 354 로 응답7. 연속되는 라인 안에 메시지내용전송 . 각 라인 끝에 라인피드와 케리지리턴 삽입하고 ‘ .’ 을 포함하는 라인으로 메시지전송 종료 .8. Code 250(ok) 로 응답
Multipurpose internet mail extensions(MIME)
MIME SMTP 는 NVT 7-bit ASCII format 만 지원 MIME 는 non-ASCII data 를 허용하기 위한 보조 프로토콜이다
MIME MIME-Version Content-Type
메시지의 body 에서 사용되는 data 의 타입을 정의Type Subtype DescriptionText Plain 포맷되지 않은 일반 텍스트
Multi-Part
Mixed 순서적으로 보인 다중의 독립적인 body partParallel 위와 동일 그러나 순서가 없음 .Digest Mixed 와 비슷함 , 그러나 default 가 message/RFC822Alternative 각 부분은 같은 정보에 대한 상호 교환적인 version
Message
RFC822 Body 가 encapsulated messagePartial Body 가 너무 큰 message 로 나누어서 전송External-Body 실제 Body 가 없고 단지 참조
MIME
Type Subtype Description
ImageJPEG JPEG formatGIF GIF format
Video MPEG MPEG formatAudio Basic 8 KHz 음성의 단일 채널 인 코딩Application
PostScript Adobe PostScriptOctet-stream General binary data(eight-bit bytes)
MIME
Plain 7bit ASCII 포맷Subtype Definition
Text
Multipart Body 가 다중 , 독립적인 부분을 포함 Multipart 헤더는 각 part 사이의 경계 정의가 필요 경계는 파라메터로서 사용 ‘--’ 으로 각 파트를 구분 종료는 경계 파라메터 다음에 ‘ --’
MIME Multipart
Mixed
Parallel
Digest
Alternative
메시지 안에 정확한 순서를 수신자에게 나타내야한다 .각 파트는 다른 타입이고 , 경계가 정의된다 .
Mixed 와 비슷한 타입 그 파트들에서 중요하지 않은 순서는 제외한다 .
Mixed 와 비슷한 타입 기본 type/subtype 이 message/rfc822 이다 .
동일한 메시지가 다른 포맷을 사용해서 반복된다 .
Subtype Definition
MIME Multipart exampleContent-Type: multipart/mixed; boundary=xxxx
--xxxxContent-Type: text/plain;…………………………………………………………………………………………………………………………--xxxxContent-Type: image/gif;………………………………………………………………………………………………………………………………………………………………………………………--xxxx--
MIME
Rfc822
Partial
External-Body
Rfc822 에 따라 작성된 메시지
body 를 나눠서 전송parameter: id, number, total
실제 body 에 data 가 없고 단지 참조할 수 있도록 함parameter : access-type, name
Subtype Definition
Message encapsulate 된 메시지
MIME Content-Transfer-Encoding
Content-Transfer-Encoding:<type>
Content-Id Content-Description
헤더가 image, audio, video 인지 정의
Type Description7bit Body 가 7bit 로 표현 , default encoding 방식8bit 8bit encoding, Non-ASCII 로 보내질 수 있지만 1,000 개의 문자로 제약 .Binary 8bit encoding. Non-ASCII 로 보내질 수 있고 1,000 개의 이상의 문자가능Base64 이진 파일에 적합 , 이진 가능한 ASCII 문자로써 일련의 3byte 를 표현Quoted-printable
encoding 방식이 인쇄 가능한 ASCII 문자로 구성 , = 는 escape 문자 표시 안 되는 문자 , 공백 등은 2 개의 16 진수 , = 로 표시
MIME Base64
0 A 11
L 22
W 33
h 44
s 55
3
1 B 12
M 23
X 34
i 45
t 56
4
2 C 13
N 24
Y 35
j 46
u 57
5
3 D 14
O 25
Z 36
k 47
v 58
6
4 E 15
P 26
a 37
l 48
w 59
7
5 F 16
Q 27
b 38
m 49
x 60
8
6 G 17
R 28
c 39
n 50
y 61
9
7 H 18
S 29
d 40
o 51
z 62
+
8 I 19
T 30
e 41
p 52
0 63
-
9 J 20
U 31
f 42
q 53
1
10
K 21
V 32
g 43
r 54
2
val val val val val val codecodecodecodecodecode