Hangul Sendmail 8.8.8 한글 센드메일을 받아가세요. ---------------------------------------------------------------------------- sendmail-8.8.8Ha.tar.gz sendmail-8.8.8H1.tar.gz sendmail-8.8.7H1.tar.gz sendmail-8.8.6H1.tar.gz sendmail-8.8.5H1.tar.gz ---------------------------------------------------------------------------- * 8.8.8Ha 는 자원연구소의 서상용박사님이 손을 보신것으로 지금 현재 8.8.8 에서 한글문제의 대부분을 해결한 것입니다. README.sysuh 을 참조하세요. 1. 한글센드메일 8.8.x 대를 만든 이유 procmail 을 sendmail 의 MDA/local mailer 로 쓰는 방법을 이용한 한글처리방법인 신정식님의 훌륭한 한글 해결책이 있음에도 8.8.x 를 한글화 하는 이유는 개인적인 용도였으나 위의 과정에 어려움을 느끼시는 분이나 MTA 가 한글관련문제들을 처리해주길 바라시는 분들을 위하여 공개하게 되었습니다. 2. 누가 한글센드메일 8.8.x 를 사용하나요 ? 기존의 한글센드메일을 사용하시던 분이시거나 새로이 sendmail 을 설치하고 싶어 하시는 분들이 가져다가 사용하시면 됩니다. 8.6.12 와 같은 위험한 버젼을 고수하시는 분들은 필히 교환하시기 바랍니다.기존의 한글 센드메일 Remote 에서 아주 쉽게 root 권한 명령을 실행시킬수 있기 때문에 아주 위험합니다. 3. 어디서 가져가나요? http://cair.kaist.ac.kr/~chester/sendmail.html 이나 ftp://ftp.inzen.com/pub/sendmail에서 구하실 수 있습니다. 4. 어떻게 설치해야 하나요 ? 참으로 많은 분들이 난감해 하시는 부분입니다. README 를 읽어보면 해결되는 일이나 여기서는 쉬운 설치를 위하여 Step-by-step 으로 설치과정을 설명하도록 하겠습니다.물론 한글로요. 1. 한글센드메일 최신버젼을 위에 언급된 곳에서 가져옵니다. 2. 현재 돌고 있는 센드메일디먼을 종료시킵니다. 일련의 과정은 다음처럼 보입니다. [mpis:chester] ps -ef |grep sendmail root 4834 1 0 07:15:58 ? 0:00 /usr/lib/sendmail -bd -q1h chester 5195 3025 1 08:25:22 pts/3 0:00 grep sendmail [mpis:chester] kill -9 4834 3. sendmail-8.8.?H?.tar.gz 라고 되어 있는 화일을 적당한 위치에 풉니다. 그러면 sendmail-8.8.? 라는 디렉토리가 생깁니다. ( ? 는 현재 7 입니다. ) 4. sendmail-8.8.? 라는 디렉토리로 들어갑니다. 디렉토리에 이러한 화일들과 디렉토리들이 나타날 것입니다. [mpis:sendmail-8.8.7H1] ls 총 638 8 READ_ME.Hangul 2 makemap/ 2 FAQ 560 RELEASE_NOTES 2 praliases/ 6 FAQ.Hangul 2 cf/ 2 rmail/ 10 KNOWNBUGS 2 contrib/ 2 smrsh/ 2 KNOWNBUGS.Hangul 2 doc/ 4 src/ 4 Makefile 2 mail.local/ 2 test/ 22 READ_ME 2 mailstats/ 5. % cd src ( src directory 로 들어갑니다. ) 6. % makesendmail 이라는 명령어를 수행하면 script 가 알아서 OS 를 식별하여 sendmail binary 를 만들기 시작합니다. 일련의 과정은 다음처럼 보입니다. [mpis:sendmail-8.8.7H1] cd src /export/home1/chester/sendmail-8.8.7H1/src [mpis:src] makesendmail Configuration: os=SunOS, rel=5.5.1, rbase=5, rroot=5.5, arch=sun4, sfx= Creating obj.SunOS.5.5.1.sun4 using Makefile.SunOS.5.5 Making dependencies in obj.SunOS.5.5.1.sun4 make: Nothing to be done for `depend'. Making in obj.SunOS.5.5.1.sun4 gcc -I. -O -I/usr/sww/include -DNDBM -DNIS -DNISPLUS -DSOLARIS=20500 -c alias.c -o alias.o ... .. . 7. src/obj.SunOS.5.5.1.sun4 와 같이 obj.OS.Architecture 와 같은 형식으로 된 디렉토리를 보실수 있습니다. 이 디렉토리로 들어갑니다. 8. % make install 을 실행합니다. 일련의 과정은 다음과 같습니다. [mpis:src] cd obj.SunOS.5.5.1.sun4 /export/home1/chester/sendmail-8.8.7H1/src/obj.SunOS.5.5.1.sun4 [mpis:obj.SunOS.5.5.1.sun4] make install ..... 9. 위의 과정중에 실패할 경우가 있습니다. 만약에 실패하신 경우에는 다음장의 문제해결을 보시기 바랍니다. 문제해결에도 해당되지 않을경우 chester@mpis.kaist.ac.kr 로 메일을 보내주시거나 han.comp.mail 에 포스팅 바랍니다. 10. 위의 과정까지 완료되었으면 새로운 sendmail.cf 를 만들어 줍시다. 1. sendmail-8.8.?H1/cf 라는 디렉토리로 들어갑니다. 다음과 같은 디렉토리들이 보일것입니다. [mpis:sendmail-8.8.7H1] ls 총 638 8 READ_ME.Hangul 2 makemap/ 2 FAQ 560 RELEASE_NOTES 2 praliases/ 6 FAQ.Hangul 2 cf/ 2 rmail/ 10 KNOWNBUGS 2 contrib/ 2 smrsh/ 2 KNOWNBUGS.Hangul 2 doc/ 4 src/ 4 Makefile 2 mail.local/ 2 test/ 22 READ_ME 2 mailstats/ [mpis:sendmail-8.8.7H1] cd cf /export/home1/chester/sendmail-8.8.7H1/cf [mpis:cf] ls 총 174 2 domain/ 2 m4/ 2 sh/ 156 README 2 feature/ 2 mailer/ 2 siteconfig/ 2 cf/ 2 hack/ 2 ostype/ [mpis:cf] 2. %cd cf 을 한후에 자신의 OS platform 을 찾습니다. [mpis:cf] cd cf /export/home1/chester/sendmail-8.8.7H1/cf/cf [mpis:cf] ls 총 200 6 generic-solaris2.mc 8 Makefile 6 generic-sunos4.1.mc 6 Makefile.dist 6 generic-ultrix4.mc 6 chez.cs.mc 6 huginn.cs.mc 6 clientproto.mc 8 knecht.mc 6 cs-hpux10.mc 6 mail.cs.mc 6 cs-hpux9.mc 6 mail.eecs.mc 6 cs-osf1.mc 6 mailspool.cs.mc 6 cs-solaris2.mc 2 obj/ 6 cs-sunos4.1.mc 6 python.cs.mc 6 cs-ultrix4.mc 6 s2k-osf1.mc 4 cyrusproto.mc 6 s2k-ultrix4.mc 6 generic-bsd4.4.mc 6 tcpproto.mc 6 generic-hpux10.mc 6 ucbarpa.mc 6 generic-hpux9.mc 10 ucbvax.mc 6 generic-nextstep3.3.mc 6 uucpproto.mc 6 generic-osf1.mc 6 vangogh.cs.mc 저의 경우에는 generic-solaris2.mc 입니다. 3. 다음과 같은 명령을 수행합니다. % m4 ../m4/cf.m4 generic-solaris2.mc > sendmail.cf 4. 성공적으로 cf 화일이 만들어 졌습니다. 이를 /etc 에 카피합니다. % cp sendmail.cf /etc 11. 다음과 명령을 사용하여 sendmail 을 재시동 합니다. % sendmail -bd -q1h 12. 설치가 완료되었습니다. MUA 에서 고려해야 할 사항을 읽어 봅시다. 5. 문제해결 * Solaris 2 사용자의 경우 OS install 직후의 /etc/hosts 가 옳바르지 못합니다. 143.248.90.181 mpis 처름 되어 있는것을 143.248.90.181 mpis.kaist.ac.kr mpis loghost 과 같이 수정합니다. * Digital UNIX 에서 설치를 하실 경우는 한국디지탈의 이승주님이 제공하는 문서를 참고하시기 바랍니다. http://www-ts.digital.co.kr/~sjlee/hangul/index.htm#hsendmail 에서 필요한 정보를 구하실수 있습니다. * source code 들을 다 컴파일 한후 linking 하는 데 다음과 같은 에러가발생해요. .... ...... gcc -I. -O -I/usr/sww/include -DNDBM -DNIS -DNISPLUS -DSOLARIS=20500 -c util.c gcc -I. -O -I/usr/sww/include -DNDBM -DNIS -DNISPLUS -DSOLARIS=20500 -c version.c gcc -o sendmail alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o deliver.o domain.o envelope.o err.o headers.o macro.o main.o map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o safefile.o savemail.o srvrsmtp.o stab.o stats.o sysexits.o trace.o udb.o usersmtp.o util.o version.o -L/usr/sww/lib -lresolv -l44bsd -lsocket -lnsl -l ld: fatal: library -l44bsd: not found ld: fatal: File processing errors. No output written to sendmail *** 오류 코드 1 make: 치명적인 오류: 타겟 `sendmail'를 위한 명령어가 실패 [ms:obj.SunOS.5.5.1.sun4] --> 44bsd 라이브러리가 지원 되지 않는 경우입니다. 다음 사항을 수정하세요. ( sendmail-8.8.?H?/src/obj.SunOS.5.5.1.sun4 directory 로 들어가서 부터 시작합니다. ) o Makefile 의 다음라인을 수정합니다. (모든화일의 permission 이 444 입니다. 쓰기가능으로 퍼미션을 조정한후 수정에 착수하시기 바랍니다.) # libraries required on your system # delete -l44bsd if you are not running BIND 4.9.x # add -ldb if you add -DNEWDB above (in DBMDEF) LIBS= -lresolv -l44bsd -lsocket -lnsl -lkstat 에서 -l44bsd 를 제거 합니다. 그래서 다음과 같이 만듭니다. # libraries required on your system # delete -l44bsd if you are not running BIND 4.9.x # add -ldb if you add -DNEWDB above (in DBMDEF) LIBS= -lresolv -lsocket -lnsl -lkstat 김도형(dynaxis@compiler.kaist.ac.kr)님의 조언으로 conf.h 를 수정해서는 안된다는 것을 알았습니다. conf.h 의 NAMED_BIND 부분을 수정하시면 안됩니다. host 이름이 aliasing 되어있는 경우 이를 자동으로 알아내지 못해서 메일 수신이 되지 않거나 , 메일을 보낼경우 MX record 를 제대로 참조하지 못해서 host unknown 이란 에러를 띄우며 제대로 발신되지 않는 경우가 생깁니다. conf.h 를 수정하지 마십시오. 김도형 님에게 감사드립니다. 이제 다시 compile 을 수행합니다. * make 시에 다음과 같은 에러가 발생합니다. gcc -I. -O -I/usr/sww/include -DNDBM -DNIS -DNISPLUS -DSOLARIS=20500 -c usersmtp.c gcc -I. -O -I/usr/sww/include -DNDBM -DNIS -DNISPLUS -DSOLARIS=20500 -c util.c gcc -I. -O -I/usr/sww/include -DNDBM -DNIS -DNISPLUS -DSOLARIS=20500 -c version.c gcc -o sendmail alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o deliver.o domain.o envelope.o err.o headers.o macro.o main.o map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o safefile.o savemail.o srvrsmtp.o stab.o stats.o sysexits.o trace.o udb.o usersmtp.o util.o version.o -L/usr/sww/lib -lresolv -lsocket -lnsl -l groff -Tascii -mandoc aliases.5 > aliases.0 sh: groff: 없음 *** 오류 코드 1 make: 치명적인 오류: 타겟 `aliases.0'를 위한 명령어가 실패 [ms:obj.SunOS.5.5.1.sun4] --> groff 가 없는 경우입니다. Manual page 를 만들수 없게 되나 매뉴얼 페이지가 필요하지 않은 경우 무시해도 좋은 경우입니다. 맨페이지를 원하시는 분은 인근 GNU site 에서 textutil package 를 가져다 설치하시기 바랍니다. * sendmail.cf 와 sendmail binary 를 적절한 위치에 성공적으로 설치했으나 실행하려고 하자 다음과 같은 에러가 발생합니다. [mpis: /usr/lib] sendmail -bd -q1h 451 /etc/sendmail.cf: line 73: fileclass: cannot open /etc/mail/sendmail.cw: No such file or directory -> 다음과 같은 명령어를 수행한후에 재시동합니다. % hostname > /etc/mail/sendmail.cw 6. MUA 에서 고려해야 할점 MIME 기능을 사용하시기를 적극 권장합니다.그렇지 않은경우는 metamail 이 필요합니다. elm등을 컴파일하실때에 Configure 가 default charset 을 묻거든 euc-kr 이라고 답하시고 content-transfer-encoding 을 묻거든 7bit 가 아닌 8bit 라고 쓰시기 바랍니다. pine,elm,Netscape,Mutt,Agent,tin 등 헤더에 적을 글자셋을 정할 수 있는 MUA 를 쓰는 이들은 한글 메일을 보낼때에 US-ASCII 나 ISO-8859-1 등 엉뚱한 글자셋 대신 꼭 euc-kr 이라고 써야합니다. pine의 경우에는 달리 compile time에서 MIME 글자셋을 지정할 필요가(방법이) 없습니다. 각 사용자가 언제라도 configure 메뉴에서 EUC-KR 혹은 ISO-2022-KR로(Pine의 한글 패치를 쓰고 outgoing filter를 적용한 경우에는 ISO-2022-KR을 써야 합니다. 이제 한글 메일 표준이 바뀌고, 모든 곳이 sendmail 8612h2를 버리면 그것을 적용할 이유가 없겠지요) 바꿀 수 있습니다. Pine은 8bit나 7bit와 같은 C-T-E 헤더를 사용자가 마음대로 정할 수 없습니다. 보내는 메일 본문의 8bit 글자 유무에 따라 자동으로 Pine이 결정합니다. elm compile 시, Configure수행시 특히 주의해야 할 점을 예로 듭니다. ... ( Configure script 수행 ) ... If you have installed Nathaniel Borenstein's metamail package for displaying MIME messages, elm can make use of it. If you didn't have metamail installed you might want to obtain a copy of it. The most recent version is on thumper.bellcore.com [128.96.41.1], or ask the archie servers for the nearest site. Compiling elm even with MIME support enabled would not depend on the metamail package, but you would not be able to use nearly all of the MIME features as long as you don't have metamail installed. Metamail with its companion programs (mmencode) must be installed somewhere in the search path, usually /usr/local/bin. Should support for MIME be compiled in? [n] y <--- 이부분을 yes 로 The Default Character Set which should be used on outgoing messages. Most sites would use US-ASCII. Default Character Set for MIME Content-type text? [US-ASCII] euc-kr <-- 이부분을 반드시 euc-kr 로 The Character Set which your terminals support. You could set this to one of the ISO-8859 charsets, even if you set the default for the Text Messages to US-ASCII, as the ISO-8859 charsets could display US-ASCII as well. For a X-Windows environment, ISO-8859-1 would be a convenient value. Default Character Set which could be displayed [US-ASCII] euc-kr <-- 이부분을 반드시 euc-kr 로. Default Content-Transfer-Encoding for MIME Content-type text. If you are using the default US-ASCII charset, you should use 7bit encoding. But if you are using some other national character set, 8bit is recommended, unless you are using a 7bit character set. For 8bit encoding your transport paths should be 8bit clean, which is not true all over the world. base64 or quoted-printable aren't yet supported for the default Content-Transfer-Encoding. Default Content-Transfer-Encoding for MIME Content-type text? [7bit] 8bit <-- 이부분을 반드시 8 bi <-- 이부분을 반드시 euc-kr 로 ..... ... ( 특히 위 부분을 주의하시어 compile 하면 됩니다.) 7. 기타사항 elm 과 똑같은 인터페이스를 가지지만 기능이 훨씬 우수한 mutt 라는 MUA 가 있습니다. 한글관련 패치가 된 Han-Mutt(KAIST 화공과 박명석님이 만드심) 도 있구요. 이것을 사용하시는것도 좋으리라고 생각됩니다. 8. 도움주신 분들 김병학(KAIST 전산학과),신정식님(예일대물리학과),김도형님(KAIST 전산학과)님께서 많은 도움말씀주셨고 항공우주연구소의 박천용님께서 사용하시는 분들을 위하여 많은 도움주셨습니다. 감사드립니다. ---------------------------------------------------------------------------- 노정석 / 한국과학기술원 산업경영학과 / chester@mpis.kaist.ac.kr