The qDecoder Project

Simple Form Mail Project


1. Introduction (소개)

(1) qMailer는 C/C++ CGI 라이브러리 qDecoder로 개발된 폼메일 입니다.

SMTP서버와 직접 소켓(Socket)으로 통신하며 메일을 발송하므로 투명하고 신뢰성이 있는 메일발송이 가능하며 프로그램 수정없이 다양한 폼메일 스킨을 손쉽게 제작/적용할 수 있습니다.

(2) qMailer는 왜 만들게 되었나?

첫번째 이유는 웹상에서 E-mail을 보내거나 다량의 메일링리스트을 처리하는데 있어서 어떠한 요구(예를들면, 다량의 메일발송시 SMTP서버로 메일을 제대로 발송하였는지 확인이 필요한 경우등)에 따라 세밀한 제어를 해야할 경우 root권한이 없으므로 해서 운용서버의 설정을 조절할 수 없거나 sendmail을 이용하더라도 sendmail의 설정에 따라 영향을 받는등의 이유로 고민하다 C/C++을 이용해서 외적요인에 의한 불확실성을 최소화 하면서 직접 SMTP서버와 통신하면서 메일발송을 처리하는 투명하고 신뢰성 있는 CGI 루틴이 필요함을 느꼈습니다.

두번째 이유는 폼을 변경해야 할 경우 소스를 직접 수정해야 함에 따라 실수로 인한 오류의 위험성을 방지하고 소스를 수정할 수 없는 사용자의 경우 자신이 원하는 폼메일 스킨을 만들기 어렵다는 생각에 소스의 수정없이 폼메일 스킨을 만들 수 있는 기능이 필요함을 느끼던중 qDecoder의 qSedFile 기능을 발견하고 만들게 되었습니다.

(3) qMailer는 왜 필요한가?

두가지 측면에서 바라볼 수 있겠습니다.

첫번째는 SMTP서버와의 직접 통신의 필요성에 대한 부분 입니다.

이것은 메일링리스트와 같은 다량의 메일을 발송하는데 있어서 투명하고 신뢰성 있는 결과를 보장하기 위한 것이라고 할 수 있습니다.

만약 다량의 메일을 발송한다고 했을때 어떤 이유로 인하여 발송이 된곳과 안된곳이 있을때 그것을 확인할 방법이 없다면 다량의 메일발송에 대한 어떠한 정책도 세울 수 없을 것입니다.

이런경우 왜 이런문제가 발생했는지, 모두 다시 발송해야할지 아니면 아예 발송하지 말아야 할지에 대한 결정조차 하기 어려울 것입니다.

그렇지만 다량의 메일을 발송하더라도 SMTP서버와 직접 통신을 통하여 발송에 대한 응답을 검증함으로서 미발송 원인과 대책을 결정할 수 있으며 발송된 리스트와 미발송 리스트를 확인할 수 있습니다.

따라서 문제가 발생하더라도 해결가능한 다양한 메일발송 정책을 수립할 수 있어 투명하고 신뢰할 수 있는 다량의 메일발송이 가능한 것입니다.

두번째는 Skin기능의 필요성이라고 볼 수 있습니다.

이것은 기존의 폼메일에 멋내기적인 요소를 덧붙인 것이라고 볼 수도 있겠습니다.

즉, 폼메일을 자신의 취향이나 고객의 요구에 맞게 꾸미는데 편의성을 제공하는 측면입니다.

qDecoder의 qSedFile은 외부 템플릿과 폼 데이터를 결합하여 웹브라우저로 전송해주는 것을 가능하게 함으로 동일한 폼데이타에 대해서 다양한 템플릿을 적용할 수 있습니다.

이러한 다양한 템플릿을 qMailer에서는 skin이라 부르며 skin은 qMailer와 독립적으로 제작이 가능하므로 소스수정에 따른 오류의 위험성이 없습니다.

qMailer에서는 간단한 HTML작업과 몇가지 단순한 설정으로 자신이 원하는 분위기의 폼메일 스킨을 쉽게 제작할 수 있습니다.

기업이 이미지에 어울리는 feedback용 폼메일을 원하거나 개인의 취향에 따라 자신만의 독특한 분위기의 폼메일을 꾸미기를 원하시는 분들이 qMailer를 활용하신다면 좋을 것입니다.

2. Key Notes (특징)

(1) SMTP 포트와 직접 통신하며 메일을 발송 합니다.

(2) qDecoder의 qSedFile함수를 사용하므로 프로그램 수정없이 자신이 원하는 폼메일 스킨을 손쉽게 제작/적용할 수 있습니다.

(3) qMailer관련 옵션은 qMailer.conf에, skin관련 설정은 해당 skin conf파일에 설정하므로 다양한 skin의 적용이 가능 합니다.

3. Preview

(1) simple skin (qMailer skin 학습용) : qMailer 스킨이 어떻게 구성되는지 이해할 수 있는 간단한 스킨 입니다.

preview Simple for GNU/Linux

(2) default skin (qMailer skin 참조용) : qMailer 스킨의 참조용으로 자신의 스킨 제작시 참조할 수 있도록 제작된 스킨 입니다.

preview Default for GNU/Linux

(3) letter skin (qMailer skin 활용예:편지지 skin)

preview Letter for GNU/Linux

(4) postcard skin (qMailer skin 활용예:엽서 skin)

preview Letter for GNU/Linux

(5) pcs skin (qMailer skin 활용예:PCS skin)

preview PCS for GNU/Linux

4. Installation (설치)

(1) 압축해제

qMailer-VERSION.tar.Z는 GNU/Linux 상에서 다음과 같이 압축을 해제 합니다.

$ gunzip < qMailer-VERSION.tar.Z | tar xvf -

qMailer-VERSION 에 해당하는 디렉토리가 생성되며 다음과 유사한 형태로 패키지가 풀려 집니다.

$ cd qMailer-VERSION<br> $ ls -asCF<br> 1 ./ 18 COPYING 1 message/ 2 qMailer.h 2 qSendmail.h<br> 1 ../ 2 Makefile 25 qMailer.c 23 qMailer.o 11 qSendmail.o<br> 1 AUTHORS 13 README 2 qMailer.conf 13 qSendmail.c 1 skin/<br>

Makefile : qMailer.cgi를 만들기 위한 Makefile message/ : mailheader/mailfooter 디렉토리 skin/ : skin 디렉토리(default, simple, letter, postcard, pcs 스킨이 기본으로 들어 있습니다.) qMailer.cgi : qMailer 미리 작성된 CGI qMailer.conf : qMailer 설정파일 qSendmail.c : SMTP Socket통신 소스파일 qSendmail.h : SMTP Socket통신 헤더파일 qmailer.c : qMailer 소스파일 qmailer.h : qMailer 헤더파일

(2) 컴파일

아래와 같이 qMailer.cgi를 만들기 위한 Makefile이 있는 디렉토리로 이동후 make를 실행 합니다.

$ cd qMailer-VERSION $ make gcc -Wall -I. -I../qDecoder-6.0.5/src/ -c -o qMailer.o qMailer.c gcc -Wall -I. -I../qDecoder-6.0.5/src/ -c -o qSendmail.o qSendmail.c gcc -Wall -I. -I../qDecoder-6.0.5/src/ -o qMailer.cgi qMailer.o qSendmail.o ../qDecoder-6.0.5/src/libqDecoder.a $

성공적으로 된경우 qMailer.cgi가 생성 됩니다.

(3) conf파일 설정

qMailer.conf파일과 skin conf파일을 반드시 자신의 시스템에 맞게 설정해 주셔야 됩니다.

(4) skin 제작 및 사용

5. Download

6. Histoty

7. Contact

문의/개선사항, 버그 리포트등은 아래의 E-mail 주소로 연락주시면 고맙겠습니다.

Dae-heung Park <qmailer@qdecoder.org>

bulletin board


[Home] [About] [Examples] [Changes] [Download] [SVN Repository] [Install] [Reference]