메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

SMTP를 이용해서 이메일 전송하기

한빛미디어

|

2002-08-16

|

by HANBIT

25,986

저자: 한빛리포터 정원희(freesoft@nownuri.net)

SMTP를 이용해서 이메일 전송하는 방법에 대해서 간단하게 알아봅시다. 별거 아니라는 생각이 들 수도 있겠지만 알아두면 유용하고 모르면 상당히 불편할 수도 있습니다. 따라서 번거롭더라도 일단 익혀두시면 유용하게 사용할 수 있을 겁니다. 기타 SMTP 와 관련된 보다 자세한 내용들은 RFC 821를 참고하시기 바랍니다. 문서 내용중 틀린 부분이나 궁금한 점이 있으면 freesoft@nownuri.net으로 알려주세요. 수정하도록 하겠습니다.

예제: aaa@bb.com 사용자가 ccc@ddd.com에게 이메일 보내기

우선 텔넷을 이용해서 SMTP 포트에 접속, 직접 이메일을 작성해보도록 하겠습니다. STMP 서버는 예약된 포트번호가 25번입니다. 따라서 텔넷 프로그램을 이용해서 다음과 같이 자신이 사용할 수 있는 SMTP 서버에 접속합니다. (리눅스 텔넷이 아닌 이야기나 새롬데이타맨 같은 경우에는 기본적으로 입력내용이 화면에 보이지 않기 때문에 여러 가지로 불편한 점이 많습니다. 옵션에서 "입력내용 echo" 설정을 해주시기 바랍니다.)
telnet  25
ex) telnet smtp.abcd.com 25
접속하면 간단한 메세지와 함께 프롬프트가 나타납니다. 우선 다음과 같이 한 줄씩 차례대로 입력해 봅니다. (한 줄씩 입력할 때마다 서버에서 응답이 오기 때문에 입력 후 잠시 기다리시기 바랍니다.)
helo localhost (SMTP 서버에게 자신이 누군지를 알려주는 부분,  맘대로 적어도 별 상관은 없음)
mail from: 
rcpt to: 
data
from: 보내는사람
To: 받는사람
Subject: 고객님 안녕하십니까?

안녕하십니까? 고객님 만나서 반갑습니다.
저희 웹사이트에 방문해 주셔서 대단히 감사합니다.
그럼 이만
.
quit
data 를 입력한 이후에 모든 내용을 타이핑했으면 . 를 찍어주고 quit를 입력해서 SMTP와의 접속을 끊습니다. 만약 본문내용을 HTML로 보내고 싶다면 아래와 같이 해주면 됩니다.
helo localhost (또는 보내는 사람의 서버명) 
mail from: 
rcpt to: 
data 
From: 보내는사람
To: 받는사람
Subject: 고객님 안녕하십니까? 
Content-Type: text/html; charset=euc-kr 



	가입환영 이메일


안녕하십니까? 고객님 만나서 반갑습니다.
저희 웹사이트에 방문해 주셔서 대단히 감사합니다.
그럼 이만


.
quit
이런 식으로 Content-Type을 추가해주고 data 이하에 HTML 소스를 입력하면 됩니다. PHP의 mail() 함수나 JavaMail 같은 경우에 smtp 접속하는 부분은 API에서 내부적으로 처리하고 실제로는 data 부분의 내용만 세팅하도록 되어 있습니다. 하지만 모든 웹 프로그래밍 언어가 mail() 같은 기능을 제공해주지는 않을 뿐만 아니라 소켓연결 API만 있는 프로그래밍 언어로 이메일 보내기를 할 경우에는 기본적인 SMPT 사용법을 알고 있어야만 합니다.

따라서 SMTP에서는 기본적으로 가장 많이 사용하게 되는 HELO, MAIL, RCPT, DATA, QUIT 의 명령어 외에도 사용자 확인을 할 수 있는 VRFY, 메일링 리스트를 확인할 수 있는 EXPN, 이메일의 터미널 또는 메일박스로의 전송을 지정할 수 있는 SOML, SAML, 현재까지의 SMTP 트랜잭션을 취소할 때 사용하는 RSET, 도움말을 볼 때 쓰는 HELP, 그리고 TURN, NOOP 등의 명령어들도 있다는 것을 알아두셔야 합니다.

기타 명령어들의 사용법과 활용에 대해서는 다음 기회에 정리할 수 있도록 하겠습니다.
TAG :
댓글 입력
자료실