'linux/Mail'에 해당되는 글 8건

  1. 2007.03.16 netmania webmail install document
  2. 2007.03.16 qmail 설치 가이드(qmail+checkpassword)
  3. 2007.03.16 qmail FAQ
  4. 2007.03.16 qmail 과 삶
  5. 2007.03.15 qmail+phpmail+imap4.7
1. 사용환경

       OS : Redhat linux 6.2 (2.2.14-5.0), other Linux , UNIX ,FreeBSD, etc
       Database : MySQL 3.22.30 이상
       Webserver : Apache 1.3.x 이상
       PHP : 4.0.0 이상
       Perl : 5.0 이상 ( 단지 install에만 사용, 수동 설치시 불필요 )

2. 디렉토리 구조

       설치가 끝이 나면 다음과 같은 구조의 디렉토리가 생성되게 됩니다.
       절대경로는 설치시 지정하는 경로에 따라 다르게 됩니다.

       /---------htdocs
           |         |---bin       => 프로그램 파일들
           |         |
           |         |---tle       => 디자인 셋 파일들
           |         |
           |         |---img       => 이미지 파일들
           |         |
           |         |---lib       => 라이브러리
           |
           |-----conf              => 환경설정
           |         |
           |         |---language  => 언어팩
           |
           ---- DB_information     => db table 정보


       bin : netmania mail의 중요한 실행스크립트 파일들이 들어있습니다. 이 곳의 파일들을 임의로 수정하실 때는 비정상적으로 동작할 수 있습니다.
       tle : netmania mail의 인터페이스와 관련된 파일들이 들어있습니다. 이 곳의 파일들에도 많은 스크립트들이 포함되어 있기 때문에 수정시에는 주의하셔야 합니다.
       img : netmania mail에서 사용되는 그래픽 파일들이 들어있습니다.
       lib : netmania mail이 사용하는 중요한 라이브러리들이 들어있으며 이 곳의 파일들도 임의로 수정시에는 비정상적으로 동작할 수 있습니다.
       conf : netmania mail의 환경설정 관련 파일들이 들어있습니다.
       language : netmania mail의 언어팩이 들어있습니다. 해당되는 언어의 팩을 이곳에 설치하신 후 conf에서 언어관련 설정을 바꾸시면 해당 언어로 서비스 되게 됩니다. 이곳에는 각종 메세지들을 담은 파일들과 메뉴에 사용된 각종 그래픽 파일들이 포함되어 있습니다.
       DB_information : netmania mail이 사용하는 중요한 db 정보가 들어있습니다.

3. 준비

       netmania mail을 사용하기 위해서는 Apache, pop3 server, smtp server(sendmail,qmail..etc), MySQL 이 설치 되어 있어야 합니다.
       이미 Apache, pop3 server, smtp server, MySQL 이 설치되어 있는 경우 4장으로 넘어가세요.

       다음에 소개되어있는 설치 과정은 Redhat 6.2 기반에서의 설치과정입니다.

       3.1 MySQL 설치

       MySQL 은 RedHat 6.2 에서 기본적으로 제공하고 있지 않기 때문에 http://www.mysql.com 에서
       down 받아 설치 해야 합니다.
       설치는 Source Compile, RPM 설치 두 가지 방법이 있습니다.

       3.1.1 Source Compile

       http://www.mysql.com/downloads/ 에서 최신 안정버전을 다운로드 받으세요.
       다음 예제는 mysql 버전 3.22.32 버전을 설치하는 것으로 합니다.

               참고) 프로그램 설치시 모두 root 권한으로 작업을 해야 합니다.

       shell 에서 다음 같은 명령어로 압축된 배포판의 압축을 풀어줍니다.

               shell> tar zxvf mysql-3.22.32.tar.gz

       압축이 풀렸으면 생성된 디렉토리로 이동합니다.

               shell> cd  mysql-3.22.32

       이제는 설정을 해주게 됩니다.

               shell> ./configure --prefix=/usr/local/mysql \
                                           --with-charset=euc_kr

       여기에서 charset을 euc_kr로 하지 않게되면 한글로 되어 있는 data 를 sort 시에 정확한 sort 값을 얻지 못하게 됩니다.
       \(역슬래시)는  옵션을 넣다 보니 길어질 경우 다음줄에서 이어서 쓸 경우 역슬래시를 이용하면 됩니다.

       --prefix 옵션은 설치할 디렉토리를 지정하는 옵션입니다. default 값은 /usr/local 입니다.
       --prefix, --with-charset 옵션 이외에 다양한 옵션이 있습니다. 다른 옵션에 대한 정보를 원할때는
       다음과 같이 --help 옵션을 하면 다양한 옵션을 볼 수 있습니다.

               shell> ./configure --help

       configure 가 끝이 나면 make 과정으로 넘어 갑니다. make 과정은 souce를 compile 하는 과정으로 만약 make 도중 오류가 발생하여 다시 make 할 경우엔
       make clean 으로 object 파일을 삭제하시고 다시 시도해 보세요.

               shell> make clean
               shell> make

       이제 설치를 합니다.

               shell> make install

       MySQL 이 설치되어 있는 디렉토리로 이동합니다.

               shell> cd /usr/local/mysql/bin

       MySQL의 데이터를 관리할 기본적인 테이블 6개를 생성시킵니다.

               shell > ./mysql_install_db

       MySQL share 디렉토리로 이동해서 mysql.server 파일을 수정합니다.

               shell> cd /usr/local/mysql/share/mysql
               shell> vi mysql.server

       safe_mysql이 실행되는 라인(78 line)에 --language=korean 옵션을 추가합니다. 이 옵션을 추가하면 에러 메세지가 한글로 나오게 됩니다.

               $bindir/safe_mysqld --user=$mysql_daemon_user --pid-file=$pid_file --datadir=$datadir --language=korean &

       mysql.server 파일 실행권한을 변경합니다.

               shell> chmod 755 mysql.server

       linux 가 부팅하면서 실행되게 하려면 mysql.server 를 /etc/rc.d/init.d/mysqld 로 copy 하고 다음과 같이 합니다.

               shell> cp mysql.server /etc/rc.d/init.d/mysqld
               shell> cd /etc/rc.d/rc3.d
               shell> ln -s /etc/rc.d/init.d/mysqld S85mysqld

       설치 작업이 끝이 났습니다. 이젠 mysql을 실행해 보겠습니다.

               shell> /etc/rc.d/init.d/mysqld start

       그리고 나서 mysql의 root password 를 바꿔보겠습니다. 예를 들면 새로 만들 password 가 netmania 일 경우
       다음과 같이 하면 됩니다.

               shell> /usr/local/mysql/mysqladmin -u root password 'netmania'

       3.1.2 RPM 설치

       http://www.mysql.com에서 최신안정버전을 다운로드 받습니다.

       홈페이지에 보면 여러개의 rpm이 있는데, 그중에서

       Binary RPM containing the server for i386 machines.
       Binary RPM containing client programs for i386 machines.
       Binary RPM containing include files and libraries for development for i386 machines

       이 세 가지를 다운로드 하세요.
       그런 후
       다음과 같은 rpm 명령어로 설치한다.

               shell> rpm -Uvh MySQL-3.22.21-1.i386.rpm
               shell> rpm -Uvh MySQL-client-3.22.21-1.i386.rpm
               shell> rpm -Uvh MySQL-devel-3.22.21-1.i386.rpm

       3.2 apache & php

       apache 프로그램은 http://www.apache.org/ 에서 가장 최신버전을 다운 받습니다.
       php 프로그램은 http://www.php.net/downloads.php 에서 가장 최신버전을 다운 받습니다.

       다음과 같은 명령어로 apache, php 프로그램의 압축과 tar를 풉니다.

               shell> tar xvfz apache_1.3.14.tar.gz
               shell> tar xvfz php-4.0.4.tar.gz

       먼저 apache소스 디렉토리에서 configure 를 실행시킵니다.

               shell> cd apache_1.3.14
               shell> ./configure

       3.2.1 php 설치

       압축이 풀린 php 배포판 디렉토리로 이동합니다.

               shell> cd ..
               shell> cd  php-4.0.4

       다음과 같은 옵션으로 configure 를 실행하고 설치 합니다.

               shell> ./configure --with-mysql=/usr/local/mysql --with-apache=../apache_1.3.14 \
                               --enable-track-vars --with-config-file-path=/usr/local/apache/conf \
                               --with-mod-charset --with-language=korean --with-charset=euc_kr \
                               --disable-debug --with-xml --enable-magic-quotes

               shell> make
               shell> make install

       3.2.2 apache 설치

       다음과 같이 apache 배포판 디렉토리로 이동하여 다시 다음 옵션을 주고 configure를 해줍니다.

               shell> cd ../apache_1.3.14
               shell> ./configure --prefix=/usr/local/apache \
                               --activate-module=src/modules/php4/libphp4.a

       --prefix 는 apache가 설치되는 디렉토리를 지정하는 옵션입니다.
       이제 apache를 컴파일 하고 설치 합니다.

               shell> make
               shell> make install

       이제 php.ini-dist 파일을 /usr/local/apache/conf 에 이름을 변경하여 복사합니다.

               shell> cp ../php-4.0.4/php.ini-dist /usr/local/apache/conf/php.ini

       이제는 Apache의 환경설정 파일인 httpd.conf 에서 php가 동작하게끔 수정해야 합니다.
       httpd.conf 파일을 vi 같은 에디터에서 열고

               #AddType application/x-httpd-php .php

       이렇게 주석처리 되어 있는 부분을 다음과 같이 수정합니다.

               AddType application/x-httpd-php .php .php3 .inc .lib .ph

       그리고 저장하고 편집기를 빠져나옵니다.
       이제는 linux 가 부팅하면서 자동으로 apache 를 동작하게 변경하도록 합니다.

               shell> cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
               shell> cd /etc/rc.d/rc3.d
               shell> ln -s /etc/rc.d/init.d/httpd S85httpd

       apache 설치의 모든 과정이 끝이 났습니다. 이제 apache를 작동해 보도록 하죠.

               shell> /etc/rc.d/init.d/httpd start

       3.3 pop3 server

       pop3 server 는 redhat6.2 버전에는 이미 깔려 있을겁니다.

       vi 같은 편집기로 /etc/inetd.conf 를 열어보시면 다음과 같이 주석 처리 되어 있을겁니다.

               #pop-2   stream  tcp     nowait  root    /usr/sbin/tcpd ipop2d
               #pop-3   stream  tcp     nowait  root    /usr/sbin/tcpd ipop3d
               #imap    stream  tcp     nowait  root    /usr/sbin/tcpd imapd

       그러면 주석처리 되어 있는 부분을 다음과 같이 풀어줍니다.

               #pop-2   stream  tcp     nowait  root    /usr/sbin/tcpd ipop2d
               pop-3   stream  tcp     nowait  root    /usr/sbin/tcpd  ipop3d
               #imap    stream  tcp     nowait  root    /usr/sbin/tcpd imapd

       저장하고 나와서 inetd를 다음과 같이 restart 시켜주세요.

               shell> /etc/rc.d/init.d/inetd restart

       그러면 pop3 가 제대로 작동하는지 알아보도록 하겠습니다. 다음과 같이 shell 에서 telnet 으로 110 번 포트에 접속을 시도해 봅니다.

               shell> telnet localhost 110

       화면에 다음과 같이 나오면 Pop3 server가 정상적으로 동작하고 있다고 볼 수 있습니다.

               Trying 127.0.0.1...
               Connected to localhost (127.0.0.1).
               Escape character is '^]'.
               +OK POP3 localhost v7.64 server ready

       이 상태에서

               user "일반사용자 계정"

       라고 치고  엔터를 쳐봅니다.
       그리고,

               pass "계정 패스워드"

       라고 치고 엔터를 칩니다.

       만약 제대로 설정이 되어 있다면 다음과 유사한 내용이 화면에 출력될겁니다.

               Connected to localhost (127.0.0.1).
               Escape character is '^]'.
               +OK POP3 localhost v7.64 server ready
               user userid
               +OK User name accepted, password please
               pass userpassword
               +OK Mailbox open, 0 messages

       위와 같은 메시지가 나오면 Pop3 서버가 정상적으로 동작하는 겁니다.
       이제는 quit 라고 쳐서 접속을 끊습니다.

               quit
               +OK Sayonara
               Connection closed by foreign host.

       만약 이렇게 되지 않을경우나 pop3 server를 재설치 할경우 http://www.eudora.com/qpopper/ 에서
       qpopper 최신 버전을 다운 받아서 설치하실 수 있습니다.

       3.3.1 qpoper

       다음과 같이 다운로드 받은 파일의 압축을 풀고 해당 디렉토리로 이동합니다.

               shell> tar xvfz qpopper3.1.2.tar.gz
               shell> cd qpopper3.1.2

       만약 shadow password 방식을 사용하는 시스템이라면 configure 옵션에 --enable-specialauth 를 추가해 주도록 합니다.
       그리고 컴파일을 합니다.

               shell> ./configure --enable-specialauth
               shell> make
               shell> cd popper

       먼저 생성된 popper를 복사한다.

               shell> cp popper /usr/local/lib

       만일 /usr/local/lib 디렉토리가 없다면 mkdir 명령으로 생성시켜주세요. 디렉토리가 존재할 경우 mkdir 명령을 내릴 필요없이 복사 작업만 하시면 됩니다.

       이제는 /etc/services ,/etc/inetd.conf 화일을 수정해야 합니다.

       /etc/services 화일에 다음과 같은 부분이 있는지 확인을 하시고 만일 없다면 추가를 해주세요.

               pop3            110/tcp                         # popper

       /etc/inetd.conf의 화일도 다음과 같은 부분이 있는지 확인을 하고 없으면 추가해주세요.

               pop3    stream  tcp     nowait  root    /usr/local/lib/popper popper -s

       이제는 inetd를 다음과 같이 restart 해줍니다.

               shell> /etc/rc.d/init.d/inetd restart

       그리고 위에서와 같이 테스트해 보도록 합니다.

               shell> telnet localhost 110
               Trying 127.0.0.1...
               Connected to localhost.
               Escape character is '^]'.
               +OK QPOP (version 3.1) at localhost starting.
               user userid
               +OK Password required for myname.
               pass userpassword
               +OK myname has 0 messages (0 octets).
               quit
               +OK Pop server at localhost signing off.
               Connection closed by foreign host.

       이런식으로 메세지가 나오면 제대로 설치가 된 것입니다.

4. netmania mail 설치

       netmania mail 을 설치하기 전에 MySQL ,apache (with php4),pop3 server ,smtp server(sendmail or qmail) 등이 설치가 되어 있어야 합니다.
       만약 이런것이 설치 되어 있지 않으면 "3. 준비" 를 참고 해서 프로그램들을 설치해주세요.

       netmania mail 에서는 install.me 라는 installer프로그램으로 쉽게 설치할 수 있습니다. 이 installer 는 perl로 만들어져 있어서 이 installer로 설치하기 위해서는 Perl 5 가 깔려 있어야 합니다. 대부분의 리눅스 시스템에서는 기본으로 Perl 5가 깔려 있습니다.
       이 프로그램은 단계별로 구성되어있고 총 3단계로 되어있습니다.

               1단계 => file copy
               2단계 => MySQL setting
               3단계 => conf 파일 수정

       이런 순서로 설치를 하게 됩니다.

       4.1 install.me를 이용한 설치

       우선 install을 하기 전에 사용자는 root 권한으로 모든 작업을 해야 한다는 것을 다시한번 상기시켜 드리겠습니다. 그리고 mysql의 root 패스워드 또한 알고 있어야 합니?
       이것은 MySQL 에 database 와 user 를 추가 하기 위해서 입니다.

       모든 작업준비가 끝났으면 netmania website (http://www.netmania.org/) 에서 받은 netmania-1.0.1.tar.gz의 압축과 tar를 풀어줍니다.

               shell>tar zxvf netmania-1.0.1.tar.gz

       그리고 생성된 디렉토리로 이동하여서 인스톨 프로그램을 실행시킵니다.

               shell> cd netmania-1.0.1
               shell> perl install.me

       그러면 다음과 같은 주의 문구가 나올겁니다.

               [netmania mail Installer version 1.0.2 ]

               [NOTICE!] This install program MUST be run as root, and
               to connect to MySQL db, root password of MySQL is needed. If not
               quit install program by press control+C.

               [Session 1. File copy ]

               Please locate the path where netmania mail will be
               installed. [/usr/local/netmania]

       enter를 치면 /usr/local/netmnaia 에 깔리게 되며 수정하고 싶으면 원하는 디렉토리 패쓰를 입력하면 됩니다.
       성공하면 "[Session 1. File copy  -- END --]" 이라는 문구가 나오고 다음 단계인 mysql setting이 나오게 됩니다.

               [Session 1. File copy  -- END --]

               [Session 2. Mysql Setting ]
               Please locate the path where MySQL is installed
               [/usr/local/mysql] /usr/local/mysql   <== mysql 이 설치된 디렉토리를 적어주면 됩니다.
               What is the hostname of MySQL [localhost] ?  <== mysql 이 설치된 server 주소를 적어주면 됩니다..
               Please type MySQL root password.--> rootpasswd <== mysql 의 root의 password 를 적어줍니다.
               We're going to add new database to MySQL.
               Please type new database name [netmania] --> netmania <== netmania mail 에서 사용할 database name
               We're going to add new user to MySQL.
               Please type new user name [webmail] --> webmail <== netmania mail 에서 사용할 mysql id
               Please type password of new user --> ******  <== 새로 만들 id의 패스워드
               Connecting MySQL to add new database and to add new user..........

               [Session 2. Mysql Setting  -- END --]

       위와 같은 메세지가 나오면서 3단계로 들어가게 됩니다.

       다음과 같은 메세지가 나타납니다.

               [Session 3. conf file setting ]

               conf/db_auth.conf file writing..........
               Please type server name of e-mail address
                ex)if your email address is 'user@email.com'
                   , server name is 'email.com' --> netmania.org <== 사용할 email 주소의 서버이름을 쓰면 됩니다.

        다음과 같은 메세지가 나타나면 끝이납니다.

               Installation End.

       이제는 apach server 의 document root 세팅만 하면 됩니다.
       Apache의 httpd.conf 파일을 vi 같은 편집기로 열어서 수정합니다.

               shell> vi /usr/local/apache/conf/httpd.conf

       DocumentRoot를 지정하는 내용을 찾아서 다음과 같이 수정해 줍니다.

               DocumentRoot "/usr/local/netmania/conf/htdocs"

       위과 같이 수정하였으면 다음과 같이 apache 를 재시작 해줍니다.

               shell>/etc/rc.d/init.d/httpd restart

       여기 까지 되었으면, install 작업이 끝이 나게 됩니다.

       만일 이미 기존에 사용하던 웹서비스가 있었고 웹메일 서비스를 추가하시는 경우라면 Apache의 httpd.conf에서 가상호스트를 잡아주셔야 합니다.
       이 경우라면 httpd.conf를 vi 같은 편집기에서 열고 다음과 같이 수정해주어야 합니다.

               shell>vi /usr/local/apache/conf/httpd.conf

       파일을 연 다음 가상호스트의 내용을 다음과 같은 내용을 입력해 주시면 됩니다.

               NameVirtualHost xxx.xxx.xxx.xxx  <== 서버의 IP 주소를 적어주시면 됩니다.

               <VirtualHost xxx.xxx.xxx.xxx>  <== 역시 서버의 IP주소를 적습니다.
               ServerAdmin admin@netmania.org  <== 서버 관리자의 이메일 주소를 적습니다.
               DocumentRoot /usr/local/netmania/conf/htdocs  <== 위에서 사용한 DocumentRoot와 같습니다.
               ServerName webmail.netmania.org  <== 새로 가상호스트로 잡으려는 서버이름을 적습니다.
               ErrorLog logs/webmail-netmania-error_log  <== 에러로그 파일의 이름을 지정해 줍니다.
               CustomLog logs/en-netmania-access_log common  <== 로그 파일의 이름을 지정해 줍니다.
               </VirtualHost>

       위와 같이 수정하셨다면 저장하시고 Apache를 재시동 해주셔야 합니다.

               shell>/etc/rc.d/init.d/httpd restart

       만일 httpd.conf에서 가상호스트 관련 부분만을 따로 빼서 별도의 파일로 관리하신다면 별도의 파일을 고치시면 됩니다.

       4.2  수동 설치

       다운받으신 파일의 압축을 푸시고 생성된 디렉토리로 이동합니다.

               shell> cd netmania-1.0.1

       먼저 다음과 같이 필요한 디렉토리와 파일들을 복사합니다.

               shell> cp -R htdocs/ conf/  /usr/local/netmania <== 설치할 디렉토리를 적어주시면 됩니다.

       다음 createuser.sql 파일을 열고 new_database, new_user, new_passwd 를 각각 적당하게 수정합니다.

               shell> cd DB_information
               shell> vi createuser.sql

       다음과 같이 하여 table를 구성합니다.

               shell> cat mailbox.sql |  /usr/local/mysql/bin/mysql --user=new_user --password=**** new_database
               shell> cat mailfolder.sql |  /usr/local/mysql/bin/mysql --user=new_user --password=**** new_database
               shell> cat pop3.sql |  /usr/local/mysql/bin/mysql --user=new_user --password=**** new_database
               shell> cat profile.sql |  /usr/local/mysql/bin/mysql --user=new_user --password=**** new_database

       이번에는 conf 파일을 수정합니다.

               shell> cd /usr/local/netmania/conf
               shell> cp db_auth.conf.default db_auth.conf
               shell> cp webmail.conf.default webmail.conf

               shell> vi db_auth.conf

               /*      Connect to host */
               $DB_HOSTNAME = "localhost";          <== MySQL 서버 host name을 적습니다.

               /*       Database to use        */
               $DB_DATABASE_NAME = "database_name"; <== 이번에 새로추가한 database name을 적습니다.

               /*      User for login  */
               $DB_USER_NAME = "user_name";         <== 이번에 새로추가한 db id 을 적습니다.

               /*      Password to use when connecting to server       */
               $DB_USER_PASSWD = "user_passwd";     <== 이번에 새로추가한 db id 의 password 을 적습니다.

               /*      Port number to use for connection       */
               $DB_PORT = ":3306";

               /*      Socket filename to use for connection   */
               $DB_PATH_SOCKET = ":/tmp/mysql.sock";

       다음과 같은 디렉토리를 추가하고 퍼미션을 변경합니다.
       nobody.nobody 로 변경한 것은 apache 실행 퍼미션과 일치 시키기 위한 작업입니다.
       만약 apache가 다른 퍼미션으로 작동하고 있으면 그 퍼미션에 맞게 수정하시면 됩니다.

               shell> mkdir /usr/local/netmania/maildata
               shell> chown -R nobody.nobody /usr/local/netmania/maildata

       이제는 apache server 의 document root 세팅만 하면 됩니다.

               shell> vi /usr/local/apache/conf/httpd.conf

               DocumentRoot "/usr/local/netmania/conf/htdocs"

       다음과 같이 수정하고 apache 를 재시작 하시면 됩니다.

       축하합니다! 여기까지 잘 되었다면 install 작업이 끝이 난겁니다.

'linux > Mail' 카테고리의 다른 글

qmail 설치 가이드(qmail+checkpassword)  (0) 2007.03.16
qmail FAQ  (0) 2007.03.16
qmail 과 삶  (0) 2007.03.16
qmail+phpmail+imap4.7  (0) 2007.03.15
qmail+checkpassword+phpmail-임시  (0) 2007.03.15
Posted by efrit
,
http://qmail.kldp.org/wiki/wiki.php/%BC%B3%C4%A1%B0%A1%C0%CC%B5%E5

qmail 설치 가이드 #
이 글은 sendmail을 대체하는 현대적인 메일 전송 에이전트(MTA)인 Qmail의 설치 가이드 입니다.

이 글은 qmail의 설치 방법만을 설명합니다.

이 글에서는 qmail의 기술적인 면은 설명하지 않습니다.

이 글은 qmail+vpopmail 문서의 qmail 설치 부분과 중복됩니다. vpopmail을 사용하시려는 분들은 qmail + vpopmail 문서를 보세요.

1 qmail 설치 가이드
1.1 1. 필요한 것들
1.2 2. patches
1.3 3. daemontools, ucspi-tcp
1.4 4. qmail 컴파일/설치
1.5 5. 스크립트 만들기
1.6 6. POP 서버
1.7 7. SMTP, POP 데몬 시작하기


1.1 1. 필요한 것들 #
qmail

ucspi-tcp

daemontools


1.2 2. patches #
qmail.org에서 추천하는 몇가지 패치들이 있습니다.

또는 http://qmail.org/netqmail/ 에서 netqmail 패키지를 받아 사용하셔도 됩니다.


glibc 2.3.1 이상에서는 컴파일이 제대로 되지 않습니다. 각각의 패치 (local)를 받아 적용 후 컴파일 합니다.

0.0.0.0을 local IP 주소로 인식하게 하는 패치 (local)

qmail이 sendmail을 emulation할때 -f 옵션이 From: 헤더를 설정하도록 하는 패치 (local)


위 패치를 설치하고, 칵테일 패치 적용시 실패합니다.

qmail.org에서 권장하는 패치는 이미 칵테일 패치에 적용되어 있습니다. (칵테일 패치를 먼저 해놓고 권장패치를 일일이 비교해보니 이미 다 수정되어 있더군요.) 아마도 그래서 실패하는 것 같습니다. -?kirrie

데비안 사지에서는 칵테일 패치 적용후 컴파일이 되지 않습니다.

왜 안되는지 알려 주실 수 있나요? -- 임은재 2004-04-20 02:04:51
기존 칵테일 패치엔 auto_spawn.c 의 값이 255로 되어 있는 반면에 현재 패치에는 1000으로 되어 있습니다. 게시판 보고 참조했는데 아직 패치에 수정이 가해지지 않은 듯 하네요.

칵테일 패치에 들어있는 TLS 기능을 완전히 세팅하지 않고 두면, thawte.com의 메일서버처럼 TLS로 접속을 시도하는 서버에서 아래와 같이 되어 버립니다.

635 > 454 TLS missing certificate: error:0200100D:system library:fopen:Permission denied (#4.3.0)
635 < QUIT
즉, 메일이 소리소문없이 배달되지 않습니다. 칵테일 패치 많이들 쓰시는데, 대부분의 qmail 문서들이 TLS세팅이나 certificate에 대해서는 언급이 없기 때문에 문제가 됩니다.
TLS로 접속하는 첨단(?) ESMTP서버들이 별로 없기에 망정이지... 완전히 episode 1 보이지 않는 위험 입니다.


1.3 3. daemontools, ucspi-tcp #
필요한 파일들이 모두 준비되었나요? 받은 몇가지 파일들을 적당한 디렉토리에 옮겨 놓고 이제 설치를 시작합시다.



일단 daemontools, ucspi-tcp를 먼저 설치하도록 하죠 (daemontools는 시스템 서비스를 관리하기 위한 도구들의 모음으로 ucspi-tcp와 같이 사용하면 inetd/xinetd 같은 구시대 수퍼 데몬을 완전히 대체할 수 있습니다).



ucspi-tcp

$ tar xzf ucspi-tcp-0.88.tar.gz
$ cd ucspi-tcp-0.88
$ make
$ make setup checkdaemontools

$ mkdir -p /package
$ chmod 1755 /package
$ mv daemontools-0.76.tar.gz /package
$ cd /package
$ tar xzf daemontools-0.76.tar.gz
$ rm daemontools-0.76.tar.gz
$ cd admin/daemontools-0.76
$ package/installdaemontools의 설치가 끝나면 svscanboot가 자동으로 시작됩니다 (*BSD는 재부팅).



1.4 4. qmail 컴파일/설치 #
자, 이제 qmail을 설치 하도록 하지요.



qmail이 설치될 디렉토리를 만듭니다.

$ mkdir /var/qmail
$ mkdir /var/qmail/alias


(참고:디렉토리를 생성하지 않아도 자동으로 /var/qmail 안에 파일이 생성된다. 물론 make setup check가 선행되어야 한다)



qmail 소스를 풀고...

$ tar xzf qmail-1.03.tar.gz
$ cd qmail-1.03


Qmail 운영을 위한 유저,그룹을 만들어 주기 위해 다음 명령을 차례로 실행합니다 (운영체제가 리눅스가 아니라면 소스 디렉토리 안의 INSTALL.ids 를 참조하세요).

$ groupadd nofiles
$ useradd -g nofiles -d /var/qmail/alias alias
$ useradd -g nofiles -d /var/qmail qmaild
$ useradd -g nofiles -d /var/qmail qmaill
$ useradd -g nofiles -d /var/qmail qmailp
$ groupadd qmail
$ useradd -g qmail -d /var/qmail qmailq
$ useradd -g qmail -d /var/qmail qmailr
$ useradd -g qmail -d /var/qmail qmails
Qmail을 컴파일/인스톨 합니다.

$ make
$ make setup check


컴파일/설치가 끝나면 기본 control 파일들의 설정을 위해..

$ ./config


이것이 정상적으로 실행 되었다면 /var/qmail/control/ 안에는 qmail이 정상적으로 작동하기 위한 설정 파일들이 생길 것입니다. 만약 그렇지 않다면 DNS 설정에 문제가 있어 호스트 이름을 찾지 못한 것이니 다음과 같이 합니다. (foobar.org가 호스트 이름이라면...)

$ ./config-fast foobar.org


1.5 5. 스크립트 만들기 #
필요한 스크립트를 만듭니다.



/var/qmail/rc 파일

#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/


이 파일에 실행 권한을 줍니다.

$ chmod a+x /var/qmail/rc


다음은 큐메일 데몬을 위한 디렉토리와 파일들을 생성...

$ mkdir -p /var/qmail/supervise/qmail-send/log
$ mkdir -p /var/qmail/supervise/qmail-smtpd/log
$ chmod +t /var/qmail/supervise/qmail-send
$ chmod +t /var/qmail/supervise/qmail-smtpd

/var/qmail/supervise/qmail-send/run 파일

#!/bin/sh
exec /var/qmail/rc


/var/qmail/supervise/qmail-send/log/run 파일

#!/bin/sh
exec /usr/local/bin/setuidgid qmaill \
    /usr/local/bin/multilog t /var/log/qmail


/var/qmail/supervise/qmail-smtpd/run 파일

#!/bin/sh
Q_UID=$(id -u qmaild)
Q_GID=$(id -g qmaild)
exec /usr/local/bin/softlimit -m 2000000 \
    /usr/local/bin/tcpserver -vHRl 0 -x /etc/tcp.smtp.cdb \
    -u $Q_UID -g $Q_GID 0 25 /var/qmail/bin/qmail-smtpd 2>&1


'참고: 솔라리스에서는 스크립트 내용을 다음과 같이 수정합니다.'

Q_UID=`/usr/xpg4/bin/id -u qmaild`
Q_GID=`/usr/xpg4/bin/id -g qmaild`


스크립트를 만들때 인용 부호를 실수하는 경우가 많은데 이 글을 참고하라.



/var/qmail/supervise/qmail-smtpd/log/run 파일

#!/bin/sh
exec /usr/local/bin/setuidgid qmaill \
    /usr/local/bin/multilog t /var/log/qmail/smtpd


지금 까지 만들어 놓은 파일들에 실행 권한을 줍니다.

$ chmod 755 /var/qmail/supervise/qmail-send/run
$ chmod 755 /var/qmail/supervise/qmail-send/log/run
$ chmod 755 /var/qmail/supervise/qmail-smtpd/run
$ chmod 755 /var/qmail/supervise/qmail-smtpd/log/run


다음은 qmail-smtpd 를 위한 로그 디렉토리 만들기

$ mkdir -p /var/log/qmail/smtpd
$ chown qmaill /var/log/qmail /var/log/qmail/smtpd


마지막으로 릴레이를 위한 파일은 /etc/tcp.smtp를 수정하는데 일단 메일 서버 자신만의 릴레이가 허용되도록 하는 파일을 만듭시다. 서버의 ip가 192.168.1.1 이라고 한다면 다음과 같이 될것 입니다 (릴레이에 관한 더 자세한 설명).



/etc/tcp.smtp 파일

127.0.0.1:allow,RELAYCLIENT=""
192.168.1.1:allow,RELAYCLIENT=""


이렇게 tcp.smtp를 수정한 후에는 항상 cdb 형식의 파일로 바꿔줘야 합니다.



$ tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp


1.6 6. POP 서버 #
POP 서버는 메일 계정을 어떻게 운영할 것인가에 따라 달라지는데 개인적으로 vpopmail을 사용할 것을 권장합니다. vpopmail은 하나의 uid/gid로 무제한의 도메인, 메일 계정을 만들어 줄 수 있으며, 관리가 매우 편합니다. 만약 vpopmail을 사용할 것이라고 결정 했다면 다음 문서를 참고 하세요.



Qmail + vpopmail


vpopmail을 사용하지 않고 시스템 로그인 계정을 사용할 것으로 결정 했다면 암호 인증을 위한 checkpassword를 받습니다.



checkpassword


checkpassword 설치

$ tar xzf checkpassword-0.90.tar.gz
$ cd checkpassword-0.90
$ make
$ make setup check


pop 서버 구동을 위한 디렉토리/파일 만들기

$ mkdir -p /var/qmail/supervise/qmail-pop3d/log
$ chmod +t /var/qmail/supervise/qmail-pop3d
$ mkdir /var/log/qmail/pop3d
$ chown qmaill /var/log/qmail/pop3d


/var/qmail/supervise/qmail-pop3d/run 파일

#!/bin/sh
exec /usr/local/bin/softlimit -m 2000000 \
/usr/local/bin/tcpserver -v -R -H -l 0 0 110 /var/qmail/bin/qmail-popup \
FQDN /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir 2>&1
FQDN은 서버의 호스트 이름(FQDN)을 적어줍니다.



/var/qmail/supervise/qmail-pop3d/log/run 파일

#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t \
    /var/log/qmail/pop3d


만들어진 파일에 실행 권한을 줍니다.

$ chmod 755 /var/qmail/supervise/qmail-pop3d/run
$ chmod 755 /var/qmail/supervise/qmail-pop3d/log/run


1.7 7. SMTP, POP 데몬 시작하기 #
이미 설치되어 있거나 실행되고 있는 메일 서버나 POP 데몬이 있다면 중지 시키고, 시스템에서 삭제합니다.



sendmail 실행 파일

sendmail 바이너리를 사용하는 다른 어플리케이션들을 위해 대신 qmail의 그것을 링크 해줍니다.


$ ln -s /var/qmail/bin/sendmail /usr/lib
$ ln -s /var/qmail/bin/sendmail /usr/sbin
 

기본 alias 계정

다음 세가지 기본 알리아스 계정은 반드시 만들어 줍니다.

postmaster

mailer-daemon

root


이 주소들로 도착하는 메일을 받아볼 일반 계정으로 알리아스를 만들어야 하는데, 만약 로컬 계정이 silver 라면 다음과 같이 만듭니다.


$ echo silver > /var/qmail/alias/.qmail-root
$ echo silver > /var/qmail/alias/.qmail-postmaster
$ echo silver > /var/qmail/alias/.qmail-mailer-daemon
$ cd /var/qmail/alias/
$ chmod 644 .qmail-root .qmail-postmaster .qmail-mailer-daemon


Maildir 만들기
/var/qmail/bin/maildirmail  ~/Maildir
echo ./Maildir/ > ~/.qmail

하고 /etc/skel 에 적용

qmail 시작하기


다음과 같이 daemontools 서비스 디렉토리에 링크를 걸어주면 5초 이내에 qmail MTA가 시작됩니다.


$ ln -s /var/qmail/supervise/qmail-send /service/
$ ln -s /var/qmail/supervise/qmail-smtpd /service/
 이렇게 한번 링크를 걸어 두면 시스템을 재부팅 하더라도 daemontools에 의해 자동으로 재시작 됩니다.

시작/정지등의 명령을 좀더 쉽게 하기위해 만들어진 스크립트를 사용할 수 도 있습니다. 다음 url의 파일을 적당한 이름으로 저장한 후 실행 권한을 주고 사용하시면 됩니다.

qmail-startup.txt


pop 서버 시작하기

pop3 서버도 같은 요령으로 daemontools 서비스 디렉토리에 링크만 걸어주면 됩니다.


$ ln -s /var/qmail/supervise/qmail-pop3d /service

'linux > Mail' 카테고리의 다른 글

netmania webmail install document  (0) 2007.03.16
qmail FAQ  (0) 2007.03.16
qmail 과 삶  (0) 2007.03.16
qmail+phpmail+imap4.7  (0) 2007.03.15
qmail+checkpassword+phpmail-임시  (0) 2007.03.15
Posted by efrit
,

qmail FAQ

linux/Mail 2007. 3. 16. 14:37

'linux > Mail' 카테고리의 다른 글

netmania webmail install document  (0) 2007.03.16
qmail 설치 가이드(qmail+checkpassword)  (0) 2007.03.16
qmail 과 삶  (0) 2007.03.16
qmail+phpmail+imap4.7  (0) 2007.03.15
qmail+checkpassword+phpmail-임시  (0) 2007.03.15
Posted by efrit
,

qmail 과 삶

linux/Mail 2007. 3. 16. 14:37

'linux > Mail' 카테고리의 다른 글

qmail 설치 가이드(qmail+checkpassword)  (0) 2007.03.16
qmail FAQ  (0) 2007.03.16
qmail+phpmail+imap4.7  (0) 2007.03.15
qmail+checkpassword+phpmail-임시  (0) 2007.03.15
squirrelmail+spamassasin+qmail-scanner -- imsi  (0) 2007.03.15
Posted by efrit
,

qmail+phpmail+imap4.7

linux/Mail 2007. 3. 15. 22:45
http://qmail.kldp.org/phpbb/viewtopic.php?t=6190&highlight=qmail-quota

#### 다른 메일서버를 이 문서를 이용하여 설치하면서 오타 몇자와 빠진거 추가 했습니다. (2005년 4월 27일)###

이거 여기 올려두 되는지는 모르겟지만 일단 올려볼렵니다.
게시판 용도에 위배되거나 하면 관리자님 삭제하시거나 다른 게시판으로
이동하셔두 무방합니다.

이 문서는 저같은 초보분들을 위한 문서이며 qmail이란놈의 정체를 파악하기까지 했던 그 수만은 삽질들을 토대루 만들어 본 것입니다. 이렇게 셋팅해서 아주 잘 돌리구 있습니다. 유저님들 악플은 삼가해주시구요... 내용중에 수정사항 있으면 메일 한통 보내주세요~~ maruplus100@hotmail.com 입니다.

#APM 설치

1. openssl 설치
1) 되도록 디폴트 설치하세요.. 차후 이넘 라이브러리들을 필요로하는 소스들이 많기때문에 prefix 주는 경우에는 정말 귀찮아집니다. 소스 다 수정해줘야하구요...
2) http://www.openssl.org/source/ 에서 최신 소스를 다운로드
3) 설치
./config
make; make install

2. zlib 설치
1) http://www.gzip.org/zlib/ 에서 최신 소스를 다운로드
2) 설치 (디폴트 설치)
./configure
make; make install

** 보통 mysql을 먼저 설치하는데 mysql 컴파일 옵션에 위 두 소스를 지정하는 부분이 있어 먼저 설치했네요..

3. mysql 설치
1) http://dev.mysql.com/downloads/ 에서 최신 소스를 다운로드
2) 설치 (위치는 입맛에 맞게 하세요!! 전 /data/local/mysql 요기다 하였어요~~)
- 컴파일 옵션 / 설치
./configure --prefix=/data/local/mysql --localstatedir=/data/local/mysql/data --enable-local-infile --enable-thread-safe-client --with-mysqld-user=mysql --with-extra-charsets=all --with-openssl --with-zlib
make; make install

- cnf파일 생성
cp support-files/my-huge.cnf /etc/my.cnf

- 실행파일 생성 및 수정
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod 755 /etc/rc.d/init.d/mysqld
vi /etc/rc.d/init.d/mysqld (/etc/rc.d/init.d/mysqld 수정)
$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file >/dev/null 2>&1 & 이 부분을
$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file --log --safe-show-database -O max_connections=1000 -O max_connect_errors=999999999 >/dev/null 2>&1 &
이렇게 수정하세요~~ (뭐 이쪽 부분은 뭐 입맛에 맞게 하시면 됩니다.)

- 디비 생성
cd /설치디렉토리 (나의 경우엔 cd /data/local/mysql)
./bin/mysql_install_db (base 디비를 생성하세요~~)

- mysql 유저 등록 및 권한 설정
useradd mysql -d /설치디렉토리 -s /sbin/nologin (mysql 유저를 생성하세요)
vi /etc/shadow
mysql:!!:0000000:00:0000에서 !!부분을 *로 수정
chown -R mysql:mysql /설치 디렉토리

- mysqladmin 암호설정
/etc/rc.d/init.d/mysqld start
./bin/mysqladmin -u root password '사용할 암호'
./bin/mysqladmin -u 도메인 password '사용할 암호' (해당 서버의 도메인이 있을경우)

- 편의성을 위한 링크를 걸어보아요~~~
cd /usr/local
ln -s /설치디렉토리 . (디폴트 설치시 요기루 설치됨)
cd /usr/bin
ln -s /설치디렉토리/bin/mysql .
ln -s /설치디렉토리/bin/mysqladmin .
ln -s /설치디렉토리/bin/mysqldump .

- 동적 라이브러리링크(나중에 사용되는곳 많아요)
vi /etc/ld.so.conf 에서
/설치디렉토리/lib/mysql 추가
ldconfig


3. apache 설치
1) http://httpd.apache.org/download.cgi 에서 최신소스를 다운로드
2) 설치 (위치는 입맛에 맞게 하세요!! 전 /data/local/apache 요기다 하였어요~~)
- 컴파일옵션 (포크방식)
./configure --prefix=/data/local/apache --enable-rule=SHARED_CORE --enable-module=so --enable-mods-shared=all --enable-so --enable-ssl=shared --with-ssl --enable-rewrite --with-z
- 컴파일옵션 (워커방식)
vi /소스디렉토리/server/mpm/worker/worker.c 에서
#define DEFAULT_SERVER_LIMIT 16 요 부분을
#define DEFAULT_SERVER_LIMIT 160 요렇게 수정 (쓰레드 수를 좀 늘렸어용~~)
./configure --prefix=/data/local/apache --enable-rule=SHARED_CORE --enable-module=so --enable-mods-shared=all --enable-so --with-mpm=worker --enable-ssl=shared --with-ssl --enable-rewrite --with-z
- 컴파일
make ; make install

** 포크방식과 워커방식은 구동방식이 좀 다릅니다. ㅎㅎ 아파치가시면 자세한 정보 있어요~~

4. php설치전 필수 / 기타 필요 소스 설치
1) libjpeg 설치
- http://www.ijg.org/files/ 에서 최신버전 다운로드 (2005년03월26일 최신 : jpegsrc.v6b.tar.gz)
- 설치
./configure --enable-shared --enable-static
make
mkdir -p /usr/local/man/man1 (안만들어주면 오류남)
make install

2) libpng 설치
- http://libpng.sourceforge.net/ 에서 최신소스 다운로드
- 설치
cp /소스디렉토리/scripts/makefile.linux /소스디렉토리/makefile
make; make install

3) freetype 설치
- http://www.freetype.org/ 에서 최신소스 다운로드
- 설치
./configure --enable-shared --enable-static
make; make install

** GD라이브러리 라든지 기타 사용하실 소스들은 알아서 잘 설치하세요~~ 저는 나머진 그냥 리눅스 설치시 깔리는 RPM가지구 사용해서 따루 안적었어요...

4) imap 설치
- 여기서 imap은 실제 사용하기 위해 설치하는 것이 아니라 php컴파일을 위해 c-client만 생성해주는 것입니다. 차후 웹메일로 들어가게 되면 imap버전부터 설치방법까지 자세히 정리될거에요~~ 일단 imap를 다운 받는데요 버전은 상관 없어요 그래두 기분상 최신버전으로 가죠~~
- http://www.washington.edu/imap/ 에서 소스 다운로드 및 압축 해제
cp -R /소스디렉토리 /usr/local/imap
cd /usr/local/imap
make lrh (vi Makefile 해보시면 자기 시스템에 맞는 옵션정보 있어요~~)
cp -R /usr/local/imap/c-client /usr/c-client

** c-client만 사용할것이기 때문에 여기까지만 하면 php컴파일 잘 됩니다.

5. php 설치
1) http://www.php.net/downloads.php 에서 최신소스 다운로드
2) 설치
- 위치는 입맛에 맞게 하세요!! 전 /data/local/apache 요기다 하였어요~~ 옵션중 주의해야 할것은 디렉토리 선정문제 입니다. 라이브러리를 읽어오는 부분들이라서 오류를 발생시킬 수 있고 또 라이브러리를 이곳저곳 복사하거나 하여 지저분해지는 경우도 있겠죠?? 저같은경우는 apache와 mysql만 다른 디렉토리에 설정하여 옵션엔 그 두가지의 dir만 설정되어있습니다.
그리구 --with-imap --with-imap-ssl 옵션은 웹메일을 위한 옵션입니다.

- 컴파일 및 설치
./configure --prefix=/data/local/php --with-mod_charset --with-apxs2=/data/local/apache/bin/apxs --enable-force-cgi-redirect --enable-discard-path --disable-debug --enable-safe-mode --with-exec-dir=/data/local/apache/bin --enable-sigchild --enable-magic-quotes --enable-versioning --with-openssl --with-zlib --enable-bcmath --enable-calendar --with-jpeg-dir --with-gdbm --enable-dbase --enable-exif --enable-filepro --enable-ftp --with-gd --with-jpeg-dir --with-png-dir --with-ttf --with-freetype-dir --enable-gd-native-ttf --enable-gd-jis-conv --with-gettext --with-gmp --with-hyperwave --with-iconv --with-imap --with-imap-ssl --enable-mbstring --enable-mbregex --with-mysql=/data/local/mysql --enable-shmop --enable-sockets --enable-sysvsem --enable-sysvshm --enable-wddx --with-xmlrpc --enable-yp --enable-zend-multibyte --enable-memory-limit --enable-shared
make; make install

- 설정파일 복사 (php.ini-recommended, php.ini-dist 파일중 아무거나 써도 무방함)
cp /소스디렉토리/php.ini-dist /data/local/lib/php.ini
** php.ini 파일은 어느곳에 위치하든 상관없어요~~ 단, 자기가 어디있는지 알아야 하겠죠?? 젠드 올릴때두 위치 필요합니다.

- httpd.conf 수정
vi /아파치설치디렉토리/conf/httpd.conf
/DirectoryIndex index.html index.html.var 로 검색하여
DirectoryIndex index.html index.html.var index.php 요렇게되게 index.php추가
/AddType application 로 검색하여 적당한 부분에
AddType application/x-httpd-php .php .php3 .inc .ph .html 추가

6. Zendoptimizer 설치
1) http://www.zend.com/store/products/zend-optimizer.php 에서 최신소스 다운로드
2) 설치
- 설치 및 설정값 입력
cd /소스디렉토리/
./install.sh 하면 설치화면이 나옵니다. 따라서 하면 됩니다.
Zendoptimizer : /data/local/zend
php.ini : /data/local/php/lib
apache : /data/local/apache/bin/apxs
Apache 2.x.x 선택

- 아파치 재시작
/아파치설치디렉토리/bin/apachectl restart

==================================================================
자~~ 여기까지 하면 일단 웹메일을 올리기 위한 또 다른 서비스를 위한 웹서버와
디비서버가 완성된거죠.. 적다보니 손가락이 너무 아프네요~~ 여담이지만 리눅스
에 대해 전혀 알지도 못했던 제가 웹메일을 설치하면서 정말 많은걸 보구 알수 있
었네요~~ 다들 힘내시구 최소한의 삽질로 최대한의 성과를 만들어봐요~~~~~~~~
==================================================================

# 웹메일 설치

그럼 지금부터 본격적으로 웹메일을 설치해보도록 하죠..
설치할 웹메일은 포포리님의 phpmail-1.0.1 버전입니다.
구성은 qmail + mysql + checkpassword + imap + phpmail 입니다.
qmail + vpopmail + imap + SquirrelMail 의 구성은 다음에 올리도록 하죠~~

1. qmail설치
1) qmail및 해당 패치 다운로드
http://qmail.manic.co.kr/ 에서 netqmail-1.05.tar.gz 다운로드
** 요기 안에 qmail-1.03 들어있네요... 요건 all 패치된거라구 하는데요 쩝 별루 쓰고싶지는 않네요. 자세한 내용은 고 링크 옆에 문서 있어요 읽어보셔요~~~ 영어지만...
http://qmail.kldp.org/phpbb/viewtopic.php?t=5798 에서
cocktail14+mysql+chkuser+quota.patch_20041116 다운로드 (2004년 11월16일자 패치)

** 캌테일 패치는 qmail에 필요한 여러가지의 패치를 모아놓은 패치 입니다. 패치 이름중에 요 부분이 중요한데요 mysql+chkuser 요게 마이에스큐엘을 연동하여 사용하고, 유저를 체크할 수 있게 해주는 것 입니다.
** 만약 칵테일 패치를 하지 않는다면 http://qmail.org/moni.csi.hu/pub/glibc-2.3.1/ 에서 qmail-1.03.errno.patch 와 qmail-1.03.qmail_local.patch 다운받아 패치를 해주어야 합니다. 하지만 우리는 캌테일 패치를 해주었기때문에 무사통과~~~~

2) 설치
- qmail을 위한 그룹 및 계정 생성
mkdir /var/qmail
mkdir /var/qmail/alias
groupadd nofiles
useradd -g nofiles -d /var/qmail/alias alias
useradd -g nofiles -d /var/qmail qmaild
useradd -g nofiles -d /var/qmail qmaill
useradd -g nofiles -d /var/qmail qmailp
groupadd qmail
useradd -g qmail -d /var/qmail qmailq
useradd -g qmail -d /var/qmail qmailr
useradd -g qmail -d /var/qmail qmails

- qmail 패치 (패치는 해당 소스디렉토리에서 하는게 젤 좋다구 하더군요~~)
cp /다운로드디렉토리/cocktail14+mysql+chkuser+quota.patch_20041116 /소스디렉토리
cd /소스디렉토리
patch -p1 < cocktail14+mysql+chkuser+quota.patch_20041116

- 일부 파일 수정 (/data/local/mysql은 제 설치경로입니다. 자신의 것에 맞게 바꿔주세요~~)
vi mysql.c
#include <mysql/mysql.h>을 #include </data/local/mysql/include/mysql/mysql.h>로 수정
vi qmail-getpw.c
#include </mysql/mysql.h>을 #include </data/local/mysql/include/mysql/mysql.h>로 수정
vi Makefile
MYSQL_INCLUDE=-I/usr/local/include 을 MYSQL_INCLUDE=-I/data/local/mysql/include 로 수정
MYSQL_LIBS=/usr/lib/mysql/libmysqlclient.a -lm -lz -lcrypt -lnsl -ldl 을
MYSQL_LIBS=-lmysqlclient -L/data/local/mysql/lib/mysql -lm -lz -lcrypt -lnsl -ldl 로 수정
vi conf-cc
cc -O2 -DTLS=20021228 -I/usr/local/ssl/include 를
gcc -O2 -march=i686 -funroll-loops -DTLS=20021228 -I/usr/local/ssl/include 로 수정

** 수정필수사항은 mysql의 include, lib 경로와 openssl의 경로 입니다. 저의 경우는 openssl을 디폴트로 설치하였기에 따로 경로수정이 필요치 았습니다.

- 컴파일 및 설치
make
make setup check
- control 파일들 생성
./config
** 요부분은 DNS설정이 꼭 되어있어야 합니다.
**./config-fast 도메인명 을 사용해서 강제로 설정해줄 수도 있습니다.
** 이 단계를 거치고 나면 /var/qmail/control/에 defaultdomain, locals, me, plusdomain, rcpthosts 이 생성되는데 차후 메일서버를 운영함에 있어 중요한 파일들이니 뭐하는 파일들인지 꼭 알아두세요~~


2. ucspi-tcp 설치 (tcp커넥션을 만들어주는 것이죠)
1) ucspi-tcp및 해당 패치 다운로드
http://cr.yp.to/ucspi-tcp/install.html 에서
ucspi-tcp-0.88.tar.gz 다운로드
http://qmail.org/moni.csi.hu/pub/glibc-2.3.1/ 에서
ucspi-tcp-0.88.errno.patch, ucspi-tcp-0.88.a_record.patch, ucspi-tcp-0.88.nobase.patch 다운로드
http://sylvestre.ledru.info/howto/qmail/ucspi-tcp-0.88-mysql.patch 에서
ucspi-tcp-0.88-mysql.patch 다운로드

2) 설치
- ucspi-tcp 패치(패치파일을 소스디렉토리로 복사후!! 아시죠??)
patch -p1 < ucspi-tcp-0.88.errno.patch
patch -p1 < ucspi-tcp-0.88.a_record.patch
patch -p1 < ucspi-tcp-0.88.nobase.patch
patch -p0 < ucspi-tcp-0.88-mysql.patch

- 일부 파일 수정
vi conf-cc
gcc -O2 -I/usr/include/mysql 를
gcc -O2 -march=i686 -funroll-loops -I/data/local/mysql/include/mysql 로 수정

vi db.c
#include <mysql.h>을 #include </data/local/mysql/include/mysql/mysql.h>로 수정

vi conf-ld
gcc -s -I/usr/include/mysql -L/usr/local/lib/mysql -lmysqlclient 을
gcc -s -I/data/local/mysql/include/mysql -lmysqlclient -L/data/local/mysql/lib/mysql 로 수정

-컴파일 및 설치
make
make setup check

3. demontool 설치(demontool로 qmail을 돌릴거에요~~ ^^
1) demontool및 해당 패치 다운로드
http://cr.yp.to/daemontools/install.html 에서
daemontools-0.76.tar.gz 다운로드
http://qmail.org/moni.csi.hu/pub/glibc-2.3.1/ 에서
daemontools-0.76.errno.patch 다운로드
2) 설치
- 설치 디렉토리 생성
mkdir -p /package
chmod 1755 /package
cd /package
mv ~/다운로드위치/daemontools-0.76.tar.gz /package
tar -zxvf daemontools-0.76.tar.gz
rm -rf daemontools-0.76.tar.gz
cd admin/daemontools-0.76
cp ~/다운로드위치/daemontools-0.76.errno.patch .
patch -p1 < daemontools-0.76.errno.patch
package/install

4. chechpasswd
1) chechpasswd 및 해당 패치 다운로드
http://cr.yp.to/checkpwd/install.html 에서 checkpassword-0.90.tar.gz 다운로드
checkpassword-0.90-mysql-0.6.6.patch 다운로드
************************************************************
checkpassword-0.90-mysql-0.7.4.patch 가 있으나 잘 안되더라구요... 링크 참고하세요...
http://qmail.kldp.org/phpbb/viewtopic.php?t=5309&highlight=checkpassword-0.90-mysql-0.6.6.patch
************************************************************
** chechpasswd는 말 그대로 메일 계정의 패스워드를 체크할 수 있게 해주는건데요 겨기에 마이에스큐엘 패치를 하여 디비에 들어있는 가상계정의 패스워드체크도 가능하게 됩니다.

2) 설치
- checkpassword 패치
patch -p1 < checkpassword-0.90-mysql-0.6.6.patch

- 일부 파일 수정
vi mysql.c
#include <mysql.h>을 #include </data/local/mysql/include/mysql/mysql.h>로 수정

vi Makefile
MYSQL_INCLUDE=-I/usr/local/include 을 MYSQL_INCLUDE=-I/data/local/mysql/include 로 수정
MYSQL_LIBS=/usr/lib/mysql/libmysqlclient.a -lm -lz -lcrypt -lnsl -ldl 을
MYSQL_LIBS=-lmysqlclient -L/data/local/mysql/lib/mysql -lm -lz -lcrypt -lnsl -ldl 로 수정

vi conf-cc
gcc -O2 을 gcc -O2 -march=i686 -funroll-loops 로 수정

vi error.h
#include <errno.h> 추가

-컴파일 및 설치
make
make setup check

- 소유권 및 퍼미션 변경(http://qmail.kldp.org/phpbb/viewtopic.php?t=5908&highlight=checkpassword)
chown root.nofiles /bin/checkpassword
chmod 4110 /bin/checkpassword

5. qmail설정
1) qmail-pop3, qmail-send, qmail-smtp 구동 / 로거 파일 생성
- 디렉토리 생성 및 권한설정
mkdir -p /var/qmail/supervise/qmail-send/log
mkdir -p /var/qmail/supervise/qmail-smtp/log
mkdir -p /var/qmail/supervise/qmail-pop3/log
chmod +t /var/qmail/supervise/qmail-send
chmod +t /var/qmail/supervise/qmail-smtp
chmod +t /var/qmail/supervise/qmail-pop3
- qmail-send 구동(run) 파일 생성
vi /var/qmail/supervise/qmail-send/run
#!/bin/sh
exec /var/qmail/rc
- qmail-send 로거(run) 파일 생성
vi /var/qmail/supervise/qmail-send/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/send
- qmail-smtp 구동(run) 파일 생성
vi /var/qmail/supervise/qmail-smtp/run
#!/bin/sh
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
exec /usr/local/bin/softlimit -m 5000000 /usr/local/bin/tcpserver -v -R -l 0 -x /etc/tcp.smtp.cdb -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd `hostname -f` /bin/checkpassword /bin/true 2>&1
- qmail-smtp 로거(run) 파일 생성
vi /var/qmail/supervise/qmail-smtp/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtp
- qmail-pop3 구동(run) 파일 생성
vi /var/qmail/supervise/qmail-pop3/run
#!/bin/sh
exec /usr/local/bin/softlimit -m 5000000 /usr/local/bin/tcpserver -v -R -H -l 0 0 pop3 /var/qmail/bin/qmail-popup 메일서버도메인명 /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir 2>&1
- qmail-pop3 로거(run) 파일 생성
vi /var/qmail/supervise/qmail-pop3/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/pop3

- 각 구동 및 로거파일 권한 설정
chmod 755 /var/qmail/supervise/qmail-send/run
chmod 755 /var/qmail/supervise/qmail-send/log/run
chmod 755 /var/qmail/supervise/qmail-smtp/run
chmod 755 /var/qmail/supervise/qmail-smtp/log/run
chmod 755 /var/qmail/supervise/qmail-pop3/run
chmod 755 /var/qmail/supervise/qmail-pop3/log/run

- 디폴트 알리아싱 설정
cd /var/qmail/alias
echo 임의의사용자아이디 > .qmail-mailer-daemon
echo 임의의사용자아이디 > .qmail-postmaster
echo 임의의사용자아이디 > .qmail-root

ex)
cd /var/qmail/alias
echo alias > .qmail-mailer-daemon
echo alias > .qmail-postmaster
echo alias > .qmail-root

- /var/qmail/rc 파일 생성
cp /var/qmail/boot/proc /var/qmail/rc
vi /var/qmail/rc
* 7라인을 다음과 같이 수정
qmail-start '|preline procmail ./Maildir/' splogger qmail

- 로그 디렉토리 생성및 소유권 변경 (차후 이쪽에서 로그를 볼 수 있어요~~)
mkdir -p /var/log/qmail/send
mkdir -p /var/log/qmail/smtp
mkdir -p /var/log/qmail/pop3
chown -R qmaill /var/log/qmail

- qmail 실행파일 생성(요게 메인이죠~~~~ 그대로 복사해서 넣어주세요~~)
vi /etc/init.d/qmail
=====================요기서부터====================
#!/bin/sh
# Comments to support chkconfig on RedHat Linux
# chkconfig: 2345 80 80
# description: qmail MTA
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
PATH=/var/qmail/bin:/usr/local/bin:/usr/bin:/bin
export PATH
case "$1" in
start)
echo -n "Starting qmail: svscan"
cd /var/qmail/supervise
env - PATH="$PATH" svscan &
echo $! > /var/run/svscan.pid
echo "."
;;
stop)
echo -n "Stopping qmail: svscan"
kill `cat /var/run/svscan.pid`
echo -n " qmail"
svc -dx /var/qmail/supervise/*
echo -n " logging"
svc -dx /var/qmail/supervise/*/log
echo "."
;;
stat)
cd /var/qmail/supervise
svstat * */log
;;
doqueue|alrm)
echo "Sending ALRM signal to qmail-send."
svc -a /var/qmail/supervise/qmail-send
;;
queue)
qmail-qstat
qmail-qread
;;
reload|hup)
echo "Sending HUP signal to qmail-send."
svc -h /var/qmail/supervise/qmail-send
;;
pause)
echo "Pausing qmail-send"
svc -p /var/qmail/supervise/qmail-send
echo "Pausing qmail-smtp"
svc -p /var/qmail/supervise/qmail-smtp
echo "Pausing qmail-pop3"
svc -p /var/qmail/supervise/qmail-pop3
;;
cont)
echo "Continuing qmail-send"
svc -c /var/qmail/supervise/qmail-send
echo "Continuing qmail-smtp"
svc -c /var/qmail/supervise/qmail-smtp
echo "Continuing qmail-pop3"
svc -c /var/qmail/supervise/qmail-pop3
;;
restart)
echo "Restarting qmail:"
echo "* Stopping qmail-smtp."
svc -d /var/qmail/supervise/qmail-smtp
echo "* Sending qmail-send SIGTERM and restarting."
svc -t /var/qmail/supervise/qmail-send
echo "* Restarting qmail-smtp"
svc -u /var/qmail/supervise/qmail-smtp
;;
cdb)
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
chmod 644 /etc/tcp.smtp*
echo "Reloaded /etc/tcp.smtp."
;;
help)
cat << HELP
stop -- stops mail service (smtp connections refused, nothing goes out)
start -- starts mail service (smtp connection accepted, mail can go out)
pause -- temporarily stops mail service (connections accepted, nothing leaves)
cont -- continues paused mail service
stat -- displays status of mail service
cdb -- rebuild the tcpserver cdb file for smtp
restart -- stops and restarts smtp, sends qmail-send a TERM & restarts it
doqueue -- sends qmail-send ALRM, scheduling queued messages for delivery
reload -- sends qmail-send HUP, rereading locals and virtualdomains
queue -- shows status of queue
alrm -- same as doqueue
hup -- same as reload
HELP
;;
*)
echo "Usage: $0 {start|stop|restart|doqueue|reload|stat|pause|cont|cdb|queue|help}"
exit 1
;;
esac
exit 0
======================요기까지=====================
chmod 755 /etc/init.d/qmail

- 릴레이 설정(파일을 만들어주세요~~)
vi /etc/tcp.smtp
127.0.0.1:allow,RELAYCLIENT=""
서버아이피:allow,RELAYCLIENT=""
:allow

- tcp.smtp를 cdb형식으로 변환
/etc/init.d/qmail cdb
** 보통은 tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp 를 사용하지만 우리는 /etc/init.d/qmail에 스크립트를 넣어줬기때문에 요걸루 변환~~ 앞으로 편해요~~

- 센드메일을 사용하는 프로그램들이 qmail 을 사용할 수 있도록 링크
mv /usr/lib/sendmail /usr/lib/sendmail.snd
mv /usr/sbin/sendmail /usr/sbin/sendmail.snd
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
ln -sf /var/qmail/bin/qmail-qread /usr/bin/mailq

- 디비접속 컨트롤 파일 생성
vi /var/qmail/control/sqlserver
mysql_use yes
server localhost
login phpmail
password phpmail
db phpmail
table mailuser
port 3306
check_host yes
quota yes
ignore_validity yes
swap_check_order yes

- 디비설정
mysql -u root -p암호
use mysql;

insert into user values ('localhost', 'phpmail', password('phpmail'), 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N','N', 'N', 'N', 'N', 'N', 'N', 'N','','','','',0,0,0);

insert into db values ('localhost', 'phpmail', 'phpmail', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'Y', 'Y','Y', 'Y');

create database phpmail;
flush privileges;
use phpmail;

create table mailuser (
mbox_host varchar(32) binary null,
id varchar(32) binary not null,
passwd varchar(32) binary not null,
crypt varchar(32) binary not null,
uid int(5) unsigned not null default '99',
gid int(5) unsigned not null default '99',
shell varchar(16) not null default '/bin/false',
home varchar(64) binary not null,
quota_size int(10) null,
start_date date not null default '0000-00-00',
expire_date date not null default '0000-00-00',
active enum('Y','N') not null default 'Y'
);

insert into mailuser (mbox_host, id, passwd, crypt, uid, gid, shell, home) values
('서버도메인', 'phpmail', 'phpmail', encrypt('phpmail'), 99, 99, '/bin/false', '/메일박스가들어갈위치/서버도메인/phpmail');
** /메일박스가들어갈위치/서버도메인은 /data/phpmail/mail.maruplus.net 이런식 입니다.~~

- 메일디렉토리 설정
mkdir -p /메일박스가들어갈위치/서버도메인/phpmail
/var/qmail/bin/maildirmake /메일박스가들어갈위치/서버도메인/phpmail/Maildir
chown -R 99:99 /메일박스가들어갈위치

- .qmail 작성
========================================================================
%
|/var/qmail/bin/preline /usr/bin/procmail -p -m /data/phpmail/mailserver.com/phpmail/.procmailrc
========================================================================
** 쿼타설정인데요.. 패치에 따라 설정이 좀 다르네요...
일반적으론 |/var/qmail/bin/qmail-quota 요렇게 설정하는데요
cocktail14+mysql+chkuser+quota.patch_20041116 패치를 사용했을경우는 쿼타를 디비의 값을 읽어 바로 처리 하네요 해서
% 만 .qmail안에 써 주시면 쿼타설정 됩니다.

- .procmail 작성
========================================================================
PATH=/bin:/usr/bin:/usr/local/bin
DEFAULT=/data/phpmail/mailserver.com/info/Maildir/
MAILDIR=/data/phpmail/mailserver.com/info/Maildir/
LOGFILE=/var/log/qmail/procmail
VERBOSE=no
SHELL=/bin/sh

# korean code decode
:0 Efhw
*^(Subject|From|Cc):.*=\?EUC-KR\?(B|Q)\?
|formail -c | hcode -dk -m
:0 Efhw
*^(Subject|From|Cc):.*=\?ks_c_5601-1987\?(B|Q)\?
|formail -c | hcode -dk -m
:0

#:0 BfHw
#*^*.filename=.*(\?euc-kr\?)
#|formail -c | hcode -dk -m

# rejection from emailaddress
#* ^From: .*()
#/data/phpmail/mailserver.com/info/Trash/rejection

# delete spam filter
#:0
#* ^Subject: .*()
#/dev/null

# move spam filter
#:0
#* ^Subject: .*()
#/data/phpmail/mailserver.com/info/Trash/spam

#:0 Efhw
#* ^From: .*()
#|/script/my_vacation
======================================================================
** procmail에서 필터링을 하시려면 요 파일에 설정해주면 됩니다.

- qmail 실행~~
/etc/init.d/qmail start

- 가상계정 테스트
/var/qmail/bin/qmail-getpw phpmail 서버도메인 했을때
phpmail9999/메일박스가들어갈위치/서버도메인/phpmail0 요렇게 나오면 정상이에요~~
** 여기서 phpmail은 메일유저에요~~ phpmail은 실 계정이 아닌 가상계정으로 디비에 저장되죠~~ 이렇게 설정해 놓으면 차후 새로운 메일들은 phpmail 아랫쪽으로 쌓이게 됩니다.


===============================================================
여기까지 하면 일단 아웃룩으로 메일 서비스를 이용할 수 있어요~~~
물론 스팸메일이나 바이러스 등을 걸러주는 기능은 빠져있지만요...........
고 부분은 메일 서비스 전부를 마친 후에 추가하기로 해요~ 하아~ 힘드네요
자~~ 그러면 마지막으로 가야할 길 웹메일을 설치해보아요
================================================================

6. imap 설치
================================================================
많고 많은 imap중 어느걸 쓸것인가 하는게 참 고민되더군요..
courier-imap, imap-2004c1, imap-4.7c, imap-4.7b, imap-2002d_HiHi_R2 등을
설치해보구 삽질하구 한 결과 imap-4.7b, imap-2002d_HiHi_R2 두개로 좁혀졌네요...
아무래두 패치와의 궁합이겠죠?? 이 두개의 설치방법을 올립니다.
================================================================
1) imap-4.7b 설치
- php컴파일을 위해 설치된 imap삭제
rm -rf /usr/local/imap
rm -rf /usr/c-client

- imap-4.7b 및 해당 패치 다운로드
http://www.au.horde.org/pub/imap/old/ 에서 imap-4.7b.tar.Z 를 다운로드
http://www.davideous.com/imap-maildir/distrib/imap-4.7/ 에서
imap-4.7-maildirpatched-1.00.tar.gz 를 다운로드
http://www.softagency.co.jp/products/mysql/imap.html 에서
imap-mysql-0.0.2.patch.gz를 다운로드
** imap을 사용하기 위해선 mysql패치와 maildir패치가 필요합니다. 두번째 링크에 보면
각 패칭들이 모두 있기는 하지만 일일이 다 패치해주려면 중복되는것두 있구 해서 어렵습니다.
그래서 imap-4.7-maildirpatched-1.00.tar.gz 이 파일을 선택했는데요. 요넘은 imap-4.7에 maildir이
패치된 소스입니다. 이 두개가지구 설치해보죠~~

- 패치적용
tar -zxvf imap-4.7b.tar.Z
tar -zxvf imap-4.7-maildirpatched-1.00.tar.gz
cp -R imap-4.7b /usr/local/imap
cp -Rf imap-4.7-maildirpatched-1.00/* /usr/local/imap/
** 이렇게 원 소스에 패치된 소스를 덮어씌우면 간단하게 maildir패치가 완료 됩니다.
cp imap-mysql-0.0.2.patch /usr/local/imap/
vi imap-mysql-0.0.2.patch 하여 내용을 보면
상단에 아래 부분이 있는데 다음과 같이 수정해야 합니다.
** 마이에스큐엘의 인클루드를 절대경로로 잡아줍니다.
** 라이브러리를 먼저 선언해준 후 절대경로로 라이브러리 경로를 잡아줍니다.
--------------------------------------------------------------------------------------------
+# for MySQL
+MYSQL_INCLUDE=-DUSE_MYSQL -I/usr/local/mysql/include
+MYSQL_LIBS=-L/usr/lib/mysql/libmysqlclient.a -lm -lz -lcrypt -lnsl -ldl
+MYSQL_OBJS=mysql.o
+SQLSERVERFILE=/var/qmail/control/sqlserver
---------------------------------------------------------------------------------------------
요런 식으루 수정하세요 (자신의 설정에 맞게 수정해야겠죠??)
** 제 설정은 mysql설치 위치가 /data/local/mysql 입니다.~~
---------------------------------------------------------------------------------------------
+# for MySQL
+MYSQL_INCLUDE=-DUSE_MYSQL -I/data/local/mysql/include
+MYSQL_LIBS=-lmysqlclient -L/data/local/mysql/lib/mysql -lm -lz -lcrypt -lnsl -ldl
+MYSQL_OBJS=mysql.o
+SQLSERVERFILE=/var/qmail/control/sqlserver
---------------------------------------------------------------------------------------------

patch -p1 < imap-mysql-0.0.2.patch 이렇게 패치를 하면 FAILD오류가 다음과같이 뜹니다.
---------------------------------------------------------------------------------------------
patching file src/osdep/unix/Makefile
Hunk #2 FAILED at 108.
Hunk #3 succeeded at 714 (offset 1 line).
1 out of 3 hunks FAILED -- saving rejects to file src/osdep/unix/Makefile.rej
patching file src/osdep/unix/env_unix.c
Hunk #6 succeeded at 577 with fuzz 1 (offset 1 line).
Hunk #7 succeeded at 608 (offset 5 lines).
.
.
---------------------------------------------------------------------------------------------
이부분은 손으로 직접 패치 해야하겠죠??
패치가 안된 부분은 src/osdep/unix/Makefile.rej 파일에서 확일 할 수 있습니다.
비슷한곳 찾아서 직접 수정해 주세요~~ 이것 말고두 컴파일 하다보니 오류가 나오더군요
이 문제는 다음 파일들에 타임헤더를 #include <time.h> 추가시켜주면 됩니다.
/usr/local/imap/src/osdep/unix/env_unix.c
/usr/local/imap/src/osdep/unix/news.c
/usr/local/imap/src/osdep/unix/phile.c
/usr/local/imap/src/osdep/unix/mh.c
/usr/local/imap/src/osdep/unix/mx.c
/usr/local/imap/src/osdep/unix/maildir.c

- 설치
make slx
** 최신버전들은 lrh라는 정의를 가지고 있으나 해당 버전은 slx 입니다.
cp -R c-client /usr/
cp imapd/imapd /usr/sbin/imapd
vi /etc/xinetd.d/imapd
# default: on
# description: This is imap service.
service imap
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/imapd
log_on_success += HOST DURATION
log_on_failure += HOST
}

2) imap-2002d_HiHi_R2 설치
=================================================================
** 참 즐겁게도 모든 패치가 다 되어있는 버전이 있네요~~ 왜 이거 먼저 올리지
4.7부터 올렸나구요?? ㅎㅎ 그거야 올리는 사람 맘이구요 한번씩 해보시라구요
암튼 이 버전을 전 하이하이 버전이라구 이름붙이기루 했어요~~
그럼 하이하이를 설치해 볼까요~~
=================================================================
- http://qmail.kldp.org/phpbb/viewtopic.php?p=15102& 에서 imap-2002d_HiHi_R2 다운로드

- 파일 수정
vi src/osdep/unix/Makefile
MYSQL_DIR=/usr/local/mysql
MYSQL_INCLUDE=-DUSE_MYSQL -I$(MYSQL_DIR)/include
MYSQL_LIBS=$(MYSQL_DIR)/lib/mysql/libmysqlclient.a -lm -lz -lcrypt -lnsl -ldl
MYSQL_OBJS=mysql.o
SQLSERVERFILE=/var/qmail/control/sqlserver
요 부분을

MYSQL_INCLUDE=-DUSE_MYSQL -I/data/local/mysql/include
MYSQL_LIBS=-lmysqlclient -L/data/local/mysql/lib/mysql -lm -lz -lcrypt -lnsl -ldl
MYSQL_OBJS=mysql.o
SQLSERVERFILE=/var/qmail/control/sqlserver
요렇게 수정

-헤더파일 복사
cp /usr/kerberos/include/krb5.h /usr/include/openssl/
cp /usr/kerberos/include/com_err.h /usr/include/openssl/
cp /usr/kerberos/include/profile.h /usr/include/openssl/

- 설치
make slx
** 최신버전들은 lrh라는 정의를 가지고 있으나 해당 버전은 slx 입니다.

cp imapd/imapd /usr/sbin/imapd
vi /etc/xinetd.d/imapd
# default: on
# description: This is imap service.
service imap
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/imapd
log_on_success += HOST DURATION
log_on_failure += HOST
}

-imap 실행
/etc/rc.d/init.d/xinetd restart



7. phpmail설치
1) http://qmail.kldp.org/phpbb/viewtopic.php?t=5856&highlight=phpmail-1.0.1 에서
phpMail-1.0.1.tar.gz 다운로드

2) 설치(웹서버에 올리기)
- 파일 올리기
tar -zxvf phpmail-1.0.1.tar.gz
mv phpmail-1.0.1 /호스트도메인위치
** 침거 :제 설정은 /호스트도메인위치를 /data/webroot/webmail 요렇게 해놨지요~~

- 호스트 설정
vi /아파치설치디렉토리/conf/httpd.conf
가상 호스트를 하나 생성하고 해당 호스트에
php_value register_globals 1 을 추가로 적어준다.
** 일반적으로 php설정중 register_globals = Off 로 셋팅하는데 이 호스트에서만 on으로 한다

3) 설치(디비테이블생성)
- 기존 디비 삭제 (phpmail-1.0.1안에 디비 백업 있으므로 삭제후 복원한다.)
mysql -u root -p
use phpmail;
drop table mailuser;
exit;
- 디비 복원
mysql -u root -p phpmail < phpmail-linux.sql
- 기본 도메인 추가
mysql -u root -p
use phpmail;
insert into maildomn (mbox_host,company,admin,email,home)
values('메일서버도메인명', '회사명','관리자아이디','관리자메일주소','도메인디스크위치');
** sample
insert into maildomn (mbox_host,company,admin,emal,home)
values ('maruplus.net', 'maruplus', 'phpmail', 'test@maruplus.net','/data/phpmail/maruplus.net');

5) phpmail 환경설정
vi DocumentRoot/phpmail-1.0.x/lib/config.lib.html
자신의 설정에 맞게 수정해 주시면 됩니다.
주로 mysql의 연결쪽과 메일박스 들어가는 위치 를 보시면 됩니다.

7) 유저등록
http://호스트/register.html 를 이용하여 유저등록

6) 접속확인
브라우저를 연 후 웹메일 호스트로 연결하여본다.~~~

==============================================================================
하아~~~ 드디어 끝났네요~~~ 다들 잘 설치 되셨는지요??
저두 통 뭘 모르는지라 난잡하고 정신없는 문서가 되어버렸지만...
그래두 보시면서 조금이나마 빨리 성공하셨다면 그 나름대로 보람이라고 생각하고 싶네요
참고로 이 문서는 저같은 초보분들을 위하여 만든 문서이므로 고수님들 악플은 삼가해 주세요
또 잘못되었거나 빠진 부분이 있다면 친절히 댓글로 수정해주시면 합니다. ~~~
도움주신 포포리님과 이철호님 감사드립니다.
==============================================================================

# 웹메일 기타 추가사항
1. libiconv 설치 (hcode가 이넘의 라이브러리를 쓴대나 어쩐대나 잘은 몰라요 ㅠ.ㅠ)
1) http://www.gnu.org/software/libiconv/ 에서 최신소스 다운로드
2) 설치 (디폴트 설치)
./configure --enable-static --enable-shared
make
make install

2. hcode 설치
1) http://people.kldp.org/~eunjea/tmp/ 에서 hcode2.1-mailpatch3-TABpatch.tgz 다운로드
2) 설치
make
cp hcode /usr/local/bin/

3. qmail-autoresponder 설치
1) http://qmail.kldp.org/phpbb/viewtopic.php?t=6095&highlight=autoresponde 에서
autorespond-2[1].0.3.tar.gz 다운로드
2) 설치
make
cp autorespond /usr/local/bin/

4. clamav 설치
1) http://www.clamav.net/ 에서 clamav 최신소스 다운로드
2) 설치
useradd clamav -s /bin/false -c "Clam AntiVirus" clamav
./configure
make
make install

3) 설정
vi /usr/local/etc/clamd.conf
example 부분 주석처리 (약 8번째 줄에 있음.)
LogSyslog 부분 주석 제거
FixStaleSocket 부분 주석 제거
MaxThreads 부분 주석 제거 및 값을 30으로 수정
User 부분 주석 제거 및 값을 qscand로 수정
Foreground 부분 주석 제거
ScanMail 부분 주석 제거

4) daemontool로 관리
-실행파일 생성
mkdir -p /data/local/clamav/bin
vi /data/local/clamav/bin/clamdctl
======================== 요기서부터 ================================
#!/bin/sh
# For Red Hat chkconfig
# chkconfig: - 80 30
# description: the ClamAV clamd daemon

PATH=/data/local/clamav/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
export PATH

case "$1" in
start)
echo "Starting clamd"
if svok /service/clamd ; then
svc -u /service/clamd
else
echo clamd supervise not running
fi
if [ -d /var/lock/subsys ]; then
touch /var/lock/subsys/clamd
fi
;;
stop)
echo "Stopping clamd..."
echo " clamd"
svc -d /service/clamd
if [ -f /var/lock/subsys/clamd ]; then
rm /var/lock/subsys/clamd
fi
;;
stat)
svstat /service/clamd
svstat /service/clamd/log
;;
restart)
echo "Restarting clamd:"
echo "* Stopping clamd."
svc -d /service/clamd
echo "* Sending clamd SIGTERM and restarting."
svc -t /service/clamd
echo "* Restarting clamd."
svc -u /service/clamd
;;
hup)
echo "Sending HUP signal to clamd."
svc -h /service/clamd
;;
help)
cat <<HELP
stop -- stops clamd service (smtp connections refused, nothing goes out)
start -- starts clamd service (smtp connection accepted, mail can go out)
stat -- displays status of clamd service
restart -- stops and restarts the clamd service
hup -- same as reload
HELP
;;
*)
echo "Usage: $0 {start|stop|stat|restart|hup|help}"
exit 1
;;
esac
exit 0
========================= 요기까지 =================================
chmod 755 /data/local/clamav/bin/clamdctl
chown clamav /data/local/clamav/bin/clamdctl

- 구동파일 생성
mkdir -p /data/local/clamav/supervise/clamd/log
vi /data/local/clamav/supervise/clamd/run
======================== 요기부터 ================================
#!/bin/sh
lockfile="/tmp/clamd" # Location of clamd lock file
path_to_clamd="/usr/local/sbin/clamd" # Location of the clamd binary
BAD_EXIT_CODE=1 # The exit code we use to announce that something bad has happened
get_clam_pids_pipeline=`ps -ax | grep -E "${path_to_clamd}\$" | grep -v grep | awk '{print $1}'`

# Generic helper functions
# Basic return code error message function
die_rcode() {
EXIT_CODE=$1
ERROR_MSG=$2

if [ $EXIT_CODE -ne '0' ]; then
echo "$ERROR_MSG" 1>&2
echo "Exiting!" 1>&2
exit "$BAD_EXIT_CODE"
fi
}

# Main
ps_clamd=""
ps_clamd="$get_clam_pids_pipeline"
if [ -n "$ps_clamd" ]; then
pid_count="0"
for pid in $ps_clamd
do
pid_count=`expr $pid_count + 1`
done

die_rcode $BAD_EXIT_CODE "Error: $pid_count clamd process(es) already running!"

fi

if [ -e "$lockfile" ]; then
rm "$lockfile"
exit_code="$?"
die_rcode $exit_code "Error: 'rm $lockfile' call failed."
fi
exec /usr/local/bin/setuidgid qscand $path_to_clamd
======================== 요기까지 ================================
chmod 755 /data/local/clamav/supervise/clamd/run

- 로거파일 생성
vi /data/local/clamav/supervise/clamd/log/run
======================== 요기부터 ================================
#!/bin/sh
exec /usr/local/bin/setuidgid qscand /usr/local/bin/multilog t /var/log/qmail/clamav/clamd
======================== 요기까지 ================================
chmod 755 /data/local/clamav/supervise/clamd/log/run

- 로그파일 생성(위치는 자신이 정하면 되구요.. 로거파일 안에 위치두 같게 해줘야겠죠!!)
mkdir -p /var/log/clamav/clamd
chown qscand /var/log/clamav/clamd

- 실행
ln -s /data/local/clamav/supervise/clamd /service

5) 자동업데이트 설정
vi /usr/local/etc/freshclam.conf 에서 Example을 주석처리
touch /var/log/clamav/clam-update.log (이부분도 로그 위치인데요 위치는 원하시는대로..)
chmod 600 /var/log/clamav/clam-update.log
chown clamav /var/log/clamav/clam-update.log
freshclam -d -c 6 -l /var/log/clamav/clam-update.log (로그파일 위치 잡아주세요!!)


4. qmail-scanner설치

1) qmail-scanner 설치전 필요 rpm 설치 (버전은 별 상관 없으니 리눅스 씨디에서 찾아쓰시면 됩니다.)
perl-suidperl-5.8.0-88.i386.rpm
perl-DB_File-1.804-88.i386.rpm
perl-HTML-Parser-3.26-17.rpm
perl-Time-HiRes-1.38-3.rpm
perl-HTML-Tagset-3.03-28.rpm
unzip-5.50-7.i386.rpm (보통 설치되어있음)

2) tnef모듈 설치 (MS-TNEF MIME을 사용하기 위함)
- http://sourceforge.net/projects/tnef/ 에서 최신소스 다운로드
./configure
make
make install

3) maildrop 설치
** qmail-scanner가 이메일 포맷을 스캔가능한 형태로 변환하기 위해 maildrop의 reformime이란 기능을 이용
- http://prdownloads.sourceforge.net/courier/ 에서 최신소스 다운로드
./configure
make
make install-strip
make install-man

4) qmail-scanner 설치
- http://qmail-scanner.sourceforge.net 에서 최신소스 다운로드
- 설치
useradd qscand -s /bin/false
./configure (설정값 확인)
./configure --install (컨피그 되면서 설치됨///.)
- 확인
/var/qmail/bin/qmail-scanner-queue.pl -g (큐메일 스캐너 룰셋이 잘 적용되었는지 확인)
** "Can't do setuid", or "Permission denied" 에러발생시
setuidgid qmaild /var/qmail/bin/qmail-scanner-queue.pl -g

- qmail run에 scanner 연동
vi /var/qmail/supervise/qmail-smtp/run
#!/bin/sh 아래 다음 두줄 추가
QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
export QMAILQUEUE

- 차후 적용사항
quarantine-attachments.txt 에 필터 대상 헤드 내용을 추가후
/var/qmail/bin/qmail-scanner-queue.pl -g 실행시켜 db파일을 갱신

- 테스트
cd /소스디렉토리
./contrib/test_installation.sh -doit
==================== 출려값 =================================
Sending standard test message - no viruses...
done!
Sending eicar test virus - should be caught by perlscanner module...
done!
Sending eicar test virus with altered filename - should only be caught by commercial anti-virus modules (if you have any)...
Sending bad spam message for anti-spam testing - In case you are using SpamAssassin...
Done!
Finished test. Now go and check Email for root
=============================================================
cat /var/spool/qmailscan/viruses.log 에 다음과같은 로그면 정상
Tue, 29 Mar 2005 01:43:22 KST root@maruplus.net Qmail-Scanner viral test (2/4): checking perlscanner... EICAR Test Virus

- crontap 연계 바이러스메일 삭제
0 * * * * find /var/spool/qmailscan/quarantine/new -type f -mtime +30 -exec rm '{}' \;


# 멀티 도메인 설정
1) db설정(기존 도메인 설정과 동일)
2) 디렉토리 설정(기존 도메인 디렉토리 설정과 동일)
3) qmail control 파일 수정
locals 에 도메인 추가
rcpthosts 에 도메인 추가

# 메일 모니터링
1. Mailgraph 설치 (메일 서버 성능 모니터링)
1) RRDtool 설치 (Mailgraph가 RRDtool로 그래프를 생성)
- http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/ 에서 소스 다운로드
./configure
./make
./make install
./make site-perl-install

** 필요한 perl모듈 (perl -MCPAN -e shell 로 원격설치)
1. Time::HiRes
2. File::Tail

** Mailgraph
Note that "Bounced", "Viruses", and "Spam" are stacked one on another in the graph, whereas "Rejected" is a line.
_________________
모르는게 너무 많아요 도와주세요~~

maruplus 가 2005년4월28일 3:26 pm에 수정함, 총 3 번 수정됨

위로        


topgoods
등록 사용자



가입: 2005년 4월 20일
올린 글: 10

올려짐: 2005년4월21일 6:08 pm    주제: 질문입니다..  

--------------------------------------------------------------------------------

APM이 RPM으로 설치된 경우 mysql.h 는 어디 있을까요?

위로      


maruplus
등록 사용자



가입: 2005년 2월 12일
올린 글: 24
위치: japan
올려짐: 2005년4월21일 6:18 pm    주제:    

--------------------------------------------------------------------------------

shell> find / | grep mysql.h
로 찾으시면 바로 나올텐데요~~
_________________
모르는게 너무 많아요 도와주세요~~

위로        


ironiris
expert



가입: 2004년 4월 8일
올린 글: 436

올려짐: 2005년4월22일 10:25 am    주제: 아~ 추천버튼 어디갔나요~  

--------------------------------------------------------------------------------

*^^*추천!

위로      


topgoods
등록 사용자



가입: 2005년 4월 20일
올린 글: 10

올려짐: 2005년4월22일 11:11 am    주제: 음....  

--------------------------------------------------------------------------------

모든 mysql 패치는 항상 mysql.h 가 필요한데 이는 mysql을 RPM으로 설치한 경우는 해당 파일이 없더군요. mysql을 컴파일 해야 하나...음...

위로      


maruplus
등록 사용자



가입: 2005년 2월 12일
올린 글: 24
위치: japan
올려짐: 2005년4월27일 6:09 pm    주제:    

--------------------------------------------------------------------------------

감사합니다. 추천두 해주시구요~~
불편하시더라두 mysql.h를 위해서는 rpm설치를 해야 할 것 같네요~~
다른 좋은 생각 있으면 알려주세요~~ ㅎㅎ
_________________
모르는게 너무 많아요 도와주세요~~

위로        


nikim4012
등록 사용자



가입: 2004년 4월 28일
올린 글: 13

올려짐: 2005년4월29일 5:27 pm    주제:    

--------------------------------------------------------------------------------

imap-2002d_HiHi_R2 버전 설치하는데요.
님 올린 내용보고 했거든요.
님 얘기한대로 src/osdep/unix/Makefile 을 아래와 같이 수정하고
============== 아래 ===============================
MYSQL_INCLUDE=-DUSE_MYSQL -I/data/local/mysql/include
MYSQL_LIBS=-lmysqlclient -L/data/local/mysql/lib/mysql -lm -lz -lcrypt -lnsl -ldl
MYSQL_OBJS=mysql.o
SQLSERVERFILE=/var/qmail/control/sqlserver
요렇게 수정
================================================
make slx
cp imapd/imapd /usr/sbin
vi /etc/xinetd.d/imapd
작업을 했습니다.

그리고
telnet localhost 143 커멘드를 치니까...

[root@imap-2002d]# telnet localhost 143
Trying 127.0.0.1...
Connected to eipmail30 (127.0.0.1).
Escape character is '^]'.
imapd: error while loading shared libraries: libmysqlclient.so.12: cannot open shared object file: No such file or directory
Connection closed by foreign host.

위와 같이 메세지가 뜹니다.
libmysqlclient.so.12 파일을 열수 없다고 하네요.

Makefile 부분을 수정하지 않고
telnet localhost 143 을 하면 잘 됩니다.

그런데 php로 mysql 가상계정 인증하는 부분을 코드로 만들어
테스트 했는데 안 되네요.
어디를 의심해 봐야 할나요.

imap 자체에서 mysql 인증해 볼수 있는 테스트는 없나요.
답변 부탁 드립니다.
_________________
^^최고!

위로      


겨울아찌
등록 사용자



가입: 2004년 9월 1일
올린 글: 19

올려짐: 2005년5월2일 12:50 am    주제: libmysqlclient.so.12 를 열수 없을때...  

--------------------------------------------------------------------------------

인용:
위와 같이 메세지가 뜹니다.
libmysqlclient.so.12 파일을 열수 없다고 하네요.  


이렇게 메세지가 뜨는것은 보통 /usr/local/lib 에 mysql 라이브러리가 설치되기 때문입니다. 이 libmysqlclient 가 설치되어 있는 경로를 찾아서 /usr/lib 에 심볼릭링크를 걸어주면 될것 입니다.

LD_LIBRARY_PATH 에 mysql 의 라이브러리 디렉토리 경로를 지정해 주어도 됩니다. 근데 실행옵션을 설정해주는곳이 각각 틀리므로 그냥 /usr/lib 에 걸어주는게 가장 편리합니다.

도움이 되시기를...

- 겨울아찌 -
_________________
God bless to you!
여러분도 예수님을 만나보세요. ^^

위로        


maruplus
등록 사용자



가입: 2005년 2월 12일
올린 글: 24
위치: japan
올려짐: 2005년5월6일 3:31 am    주제:    

--------------------------------------------------------------------------------

libmysqlclient.so.12 이 라이브러리의 위치가 제가 셋팅한 위치와 다른거에요
그래서 방법은 find 를 이용하여 이 라이브러리를 찾으신 후에 경로를 바꿔시면 되겠죠??
_________________
모르는게 너무 많아요 도와주세요~~

위로        


linuxxer
등록 사용자



가입: 2005년 4월 18일
올린 글: 14

올려짐: 2005년5월14일 11:02 am    주제: 문서상의 .qmail 과 .procmail 은 어디에 생성하는건가요?  

--------------------------------------------------------------------------------

.qmail 과
.procmail 을 생성하라고 문서에 되어 있는데 어디에 생성하는건가요????

위로      


maruplus
등록 사용자



가입: 2005년 2월 12일
올린 글: 24
위치: japan
올려짐: 2005년5월14일 1:52 pm    주제:    

--------------------------------------------------------------------------------

메일 계정디렉토리 안에 만드시면 됩니다.
예를들면 계정 디렉토리가 /phpmail/domain.com/info/ 라면
이 디렉토리 안에 넣으시면 되죠..
_________________
모르는게 너무 많아요 도와주세요~~

위로        


topgoods
등록 사용자



가입: 2005년 4월 20일
올린 글: 10

올려짐: 2005년5월14일 10:21 pm    주제: 설치중 문제  

--------------------------------------------------------------------------------

APM은 RPM을 그대로 사용하려고 합니다.
qmail 패치후 설치는 잘 되었습니다.
ucspi-tcp 가 문제가 생기는데요.
데이타베이스부분에 문제가 있는 것 같습니다.
실제 서버의 SQL 의 lib위치와 include 위치를 제대로 수정해줬는데요.

./load tcpserver rules.o db.o remoteinfo.o timeoutconn.o cdb.a \
dns.a time.a unix.a byte.a `cat socket.lib`
db.o(.text+0x14): In function `open_db':
: undefined reference to `mysql_close'
db.o(.text+0x2b): In function `open_db':
: undefined reference to `mysql_init'
db.o(.text+0x62): In function `open_db':
: undefined reference to `mysql_real_connect'
db.o(.text+0x7e): In function `open_db':
: undefined reference to `mysql_error'
db.o(.text+0xe6): In function `check_db':
: undefined reference to `mysql_query'
db.o(.text+0xf6): In function `check_db':
: undefined reference to `mysql_store_result'
db.o(.text+0x109): In function `check_db':
: undefined reference to `mysql_affected_rows'
db.o(.text+0x118): In function `check_db':
: undefined reference to `mysql_free_result'
db.o(.text+0x135): In function `check_db':
: undefined reference to `mysql_error'
db.o(.text+0x187): In function `check_db':
: undefined reference to `mysql_query'
db.o(.text+0x210): In function `db_close':
: undefined reference to `mysql_close'
db.o(.text+0x258): In function `db_ping':
: undefined reference to `mysql_ping'
collect2: ld returned 1 exit status
make: *** [tcpserver] 오류 1


이런 오류가 나네요.

혹시 아시는 분은..

위로      


topgoods
등록 사용자



가입: 2005년 4월 20일
올린 글: 10

올려짐: 2005년5월15일 1:20 pm    주제: 아참 참고로  

--------------------------------------------------------------------------------

아참 제가 glibc 2.2.4 이기에 패치가 안 맞는것 같은데요.
2.3 패치 안하고 mysql만 패치해도 같은 에러가 나네요.
mysql 패치에 2.3 에 해당되는 부분이 있는건 아닌지.
음... 아시는분 혹시?

위로      


linuxxer
등록 사용자



가입: 2005년 4월 18일
올린 글: 14

올려짐: 2005년5월17일 9:20 am    주제: ldconfig 안해주신거 아닌가요?  

--------------------------------------------------------------------------------

]# cat /etc/ld.so.conf

/usr/kerberos/lib
/usr/X11R6/lib
/usr/lib/qt-3.1/lib
/usr/lib/mysql
/www/local/mysql/lib/mysql <--- 저는 요경로에다가 mysql을 설치했음

]# ldconfig

]#

위의 ldconfig를 실행하시고 해보면 안될까 하는 생각이 드네요

위로      


linuxxer
등록 사용자



가입: 2005년 4월 18일
올린 글: 14

올려짐: 2005년5월17일 9:22 am    주제: maruplus님 봐주세요  

--------------------------------------------------------------------------------

메일 계정디렉토리 안에 만드시면 됩니다.
예를들면 계정 디렉토리가 /phpmail/domain.com/info/ 라면
이 디렉토리 안에 넣으시면 되죠..
_________________
모르는게 너무 많아요 도와주세요~~

======================================

위와같이 답변을 주셨는데요...
그럼 checkpassword 방식을 사용하게 된다면 /etc/skel 안에 .qmail & .procmail을 넣어 놓으면 되는거 아닌가요?

일일이 메일계정생성할때마다 만들어주기 거시기 하자나요.....

'linux > Mail' 카테고리의 다른 글

qmail FAQ  (0) 2007.03.16
qmail 과 삶  (0) 2007.03.16
qmail+checkpassword+phpmail-임시  (0) 2007.03.15
squirrelmail+spamassasin+qmail-scanner -- imsi  (0) 2007.03.15
Qmail installation --임시  (0) 2007.03.15
Posted by efrit
,