ASP를 이용한 웹 메일 구축하기 인제대학교 컴퓨터응용과학부 99학번 김현진
목적 목표 1. 웹 프로그래밍을 익힌다. 2. 메일 송수신의 흐름을 익힌다. 1. 메일의 전반적 흐름을 통한 2000서버사용과 메일서버의 기술을 습득한다. 2. ASP를 구동하는 기본적인 원리부터 고급수준까지 다양한 기술 익힌다. 3. 메일의 가장 기본적인 메일의 송신과 수신의 기능을 구축.
개발언어 개발도구 1. ASP(Active Server Pages) 2. HTML(HyperText Markup Language) 3. Javascript 개발도구 1. Windows 2000 Server(DNS 설정) 2. IIS 5.0 3. Microsoft AccessVisual InterDev 4. Emwac(메일서버) 5. Photoshop 6. Namo
[제 1부] 웹 메일 만들기에 앞서 알아 둘 것! 1) 메일서버에 관하여 2) DNS 에 관하여 3) 메일객체에 관하여
1) 메일 서버란? Mail Server는 간단히 말해서 사용자가 자신의 컴퓨터에서 메일을 보내고 받을 수 있게 서버측의 컴퓨터를 세팅하는 소프트웨어의 일종이라고 생각하면 큰 무리가 없을 듯 하 다. 즉, 메일서버는 현재 자신의 컴퓨터에 설치되어 메일을 송신과 수신의 기능을 담당하 게 된다. 여러 종류의 메일 서버 중에서 이 프로젝트는 무료설치가 가능한 emwac라는 것을 선택 하였다.
2) DNS(Domain Name System) 도메인은 네트웍 주소들의 집합으로 구성되고 계층을 가지게 된다. : kr 국 가 기관의 성격 : ac : inje 장 소 인터넷의 가장 고유한 주소 물론 그 이하 계층의 도메인도 사용될 수 있다. 더 정확하게 말하면 인터넷의 도메인 이름 체계, 즉 DNS에서의 도메인이란 서브 도메 인이나 호스트들과 관련하여 네임 서버가 가지고 있는 이름을 말하게 된다. * 참고 정방향 : 도메인을 통해 IP를 검색하여 메일서버를 찾아가는 것. 역방향 : IP를 통해서 도메인을 찾아가는 것.
3) 메일객체 비교 CDO (Collaboration Data Objects) 와 CDONTS (Collaboration Data Objects for NT Server) 비교 CDO : Exchange Server 5.5의 기능을 활용하고 그것의 좀더 향상된 기능들을 지원하는데 있어 매우 유리하다. CDONTS : 대규모의 빠른 메일 애플리케이션들을 생성하거나 메일이나 메세지 기능을 기존 애플리케이션에게 추가하는데 좋다. CDONTS의 간단함을 나타내는 예로써 NewMail객체가 있다.
[제2부] 웹 메일의 송수신 과정 메일 송수신 전반적 구조 웹 메일 구현순서 3) 송신과정 >> cdonts의 newmail객체를 이용하여 간단히 메일 보냄 수신과정 >> 메일 받기 >> 메일 읽기 - regist_ok : 회원가입을 하게 되면 자동으로 서버에 사용자 계정생성 - login_ok1 : 메일이 cdonts객체를 이용하여 읽어 들일 수 있게 소스 작성 - mailread : 메일의 리스트를 보여줌 - viewmail : 각각의 메일을 클릭시 그 내용을 보여줌 - delete : 메일을 삭제
1) 메일 송수신의 전반적 구조 D N S 수신자 메일서버 송신자 메일서버 편지 보냄 편지 받음 Email 주소분석 사이트 주소 확인 요청 해당 IP주소로 접근 송신자 메일서버 D N S 수신자 메일서버 요청한 사이트의 IP를 확인 편지 보냄 편지 받음 사용한 DNS : 3i-bid.inje.ac.kr(203.241.246.68) 사용한 수신 메일서버 : emwac 사용한 송신 메일서버 : smtp
2) 웹 메일 구현순서 3) 송신과정 a. DNS 설정. b. Emwac 설치. c. SMTP 서비스 시작 d. 외부 웹메일 사이트에서 메일을 보낸 후 emwac에서 지정한 폴더로 메일이 도착하 는지 확인. e. 메일이 도착하면 asp와 cdonts객체를 이용하여 도착한 메일을 웹상으로 확인. 3) 송신과정 Smtp프로토콜과 cdonts의 newmail객체를 사용하여 메일 보내기. Dim objSendMail Set objSendMail=server.CreateObject("CDONTS.NewMail") objSendMail.from = 보내는 사람 주소 objSendMail.To = 받는 사람 주소 objSendMail.CC= 참조인 주소 objSendMail.BCC= 숨은 참조 주소 objSendMail.importance= 메일의 중요도 objSendMail.subject= 메일의 제목 objSendMail.body= 메일의 내용 objSendMail.Send 메일을 보냄
Smtp로 메일을 송신하는 경우의 통신순서
4) 수신과정 메일 받기 : emwac의 메일서버가 지정한 폴더 속으로 외부에서 보낸 메일이 폴더 속에서 차례로 쌓인다. 메일 읽기 1) Login_ok1 메일서버속에 쌓인 Msg확장자를 지닌 메일을 eml형식에 맞게끔 임의적으로 메일텍스트 헤더 부분을 수정한다. 메일의 확장자를 Msg에서 eml로 바꾼다. 이 바뀌어진 메일들을 메일서버의 폴더에서 C:\Inetpub\mailroot\Drop 폴더 속으로 옮긴다. 나중에 나올 메일 삭제를 위해서 메일 이름과 메일도착시간을 DB에 저장한다.
2) login_delet1 3) mailread 4) viewmail 5) delete 메일 서버 속에 남아있는 Msg형태의 메일을 삭제한다. 3) mailread 메일의 리스트를 아이디 별로 보여준다. 4) viewmail 메일의 리스트에 제목을 누르면 그 메일의 내용을 보여준다. 5) delete 메일의 리스트의 체크박스를 누르면 메일이 삭제된다. 하지만 체크된 메일의 개수가 하나이면 아무런 문제가 없지만 복수개가 되면 약간의 문제가 복잡해지게 된다.
복수개의 체크박스 메일 삭제 알고리즘 비교하여 메일을 실제로 삭제
전체적인 웹 메일 사이트 구경하기 1. 회원가입 회원가입하고 나면 서버에 사용자 아이 디 계정이 생성된다.
조금 뒤 메일이 도착하여 메일을 클릭해 보면 보냈던 내용과 2. 메일 송신 순서 메일을 쓰기를 이용해 외부 웹 메일로 메일을 쓴다. 조금 뒤 메일이 도착하여 리스트에 보여진다. 메일을 클릭해 보면 보냈던 내용과 동일함을 확인 할 수 있다.
3. 메일 수신 순서 & 메일 읽기 과정 외부 웹 메일에서 메일을 보낸다. 조금 뒤 메일이 서버의 메일서버로 도착한다. 이때 아이디 별로 알아서 메일서버에 도착하게 된다.
메일이 login_ok1소스를 지나 이 버튼을 누르면 login_ok1.asp 소스가 실행되면 Msg확장자와 eml확장자를 지닌 파일들이 메일이 login_ok1소스를 지나 면서 확장자가 바뀌어진 상태로 drop 폴더 속으로 들어간다.
또한 Login_ok1에서 그 파일을 DB안에 파일이름과 날짜를 저장한다. Login_delete1을 지나면서 msg 파일을 삭제한다.
향후과제 메일 첨부기능을 추가한다. 사용자에게 이미지를 입력 받아 그 이미지를 첨부한 메일 보내기 시도. 웹 사이트로 로긴 해서 메일을 확인한다. 향후과제 메일 첨부기능을 추가한다. 사용자에게 이미지를 입력 받아 그 이미지를 첨부한 메일 보내기 시도.