아래의 ftp 사이트에서 hmconv 의 소스 화일을 구해서 컴파일 해서
Pine 에서 외부로 보낼 한글 메일을 인코드 해버리면 됩니다. 단,
이렇게 하면 pine 을 끝내고 .pine-debug.... 라는 화일이 생기는
데 (왜 생기는지는 묻지 마셔요.. 몰러유~. -_-;) .logout 화일에
rm -f .pine-debug* 라고 하나 만들어 두시면 되겠죠. 참고하세요.
그럼~
---------------------------------------------------------------
Pine 3.92 이후 판과 RFC 1557을 따르는 한글 메일 교환
-----------------------------------------------------
0. KS C 5601과 ISO-2022-KR 사이의 코드 변환을
위한 코드 변환 프로그램으로
hmconv를 쓰는 것을 가정했음. hmconv의
최신판은 ftp://ftp.kaist.ac.kr/incoming/hangul이나
ftp://under3.kisa.org/incoming에 있음.
프린터 명령을 위해서는 hcode와 h2ps(혹은 hpscat)도 필요합니다.
hcode의 최신판도 같은 곳에 있습니다. hcode2.1-mailpatch2를
가져다 설치하십시오.
hpscat은 위 두곳 아카이브의 /pub/hangul/print에서
구할 수 있습니다.
h2ps는 http://shiva.snu.ac.kr/~setup에서 구할
수 있습니다.
dial-up이나 telnet으로 접속한 뒤 local printer로 출력을
하려면, ansiprt가 필요합니다. Pine 3.95의 contrib에 있는
소스를 이 패키지에 같이 포함시켰습니다.
1. main menu에서 S를 눌러서 Setup을 선택합니다.
2. C를 눌러서 configure를 고릅니다.
3. toggle할 option 중에서 다음을 모두 켜 줍니다. (ON)
- compose-send-offers-first-filter
- pass-control-character-as-is
- enable 8bit esmtp negotiation
- enable 8bit nntp negotiation( for Hangul news posting)
4. 값을 주어야 할 option 중에서 다음을 아래처럼 세팅합니다.
- character-set : iso-2022-kr
(한글 sendmail 설치 여부에 관계없이
pine 395k patch를 쓰는 경우에는 iso-2022-kr로
하십시오. 한글
pine395k.patch 를 적용하지 않은 Pine을 쓴다면,
EUC-KR로 하십시오. 메일 제목의 한글과 관련한
문제는 맨 아래 참고)
- display-filters : "" /full/path/hmconv -u 또는 "$)C"
/full/path/hmconv -u 또는
_CHARSET(iso-2022-kr)_ /full/path/hmconv -u
_CHARSET(ISO-2022-KR)_ /full/path/hmconv -u
_CHARSET(iso-8859-1)_ /full/path/hmconv -u
_CHARSET(euc-kr)_ /full/path/hmconv -u
_CHARSET(EUC-KR)_ /full/path/hmconv -u
세번째 경우처럼 복수 지정 가능
(한글 sendmail이 설치된 곳에서도 displayfilter를 설정하는
것이 좋습니다. 받는 메일은 메일 박스에 저장되기 전에 한글
sendmail이 KSC 5601로 바꿔 놓지만, 자신이 보낸 메일은
ISO-2022-KR로 저장되기 때문입니다. )
- sending-filters : /full/path/hmconv
역시 복수 지정 가능
(한글 sendmail이 있더라도 sending filter는 지정해야 합니다.
그렇지 않으면, QP/Base64로 인코드되어 나갑니다. sendmail
8.7.x를 localize한 한글 sendmail 8.7.x가 나오기까지는
이렇게 해야합니다)
5. 한글 sendmail이 없는 경우에 (있는 경우에도 Pine 3.92 이후 사용자에게
편리할 수 있음.자신이 보낸 메일을 다시 한번 편집해 다른 이에게
보낼 경우 등에) iso-2022-kr로 저장된 mailbox를 다루는데
편리하도록 Pine의 editor를 바꿔줍니다.
- Setup-Configure에서(위 1번 참고)
아래 두가지를 켜(ON) 줍니다.
enable-alternate-editor-cmd
enable-alternate-editor-implicitly
그리고, 'editor'를 아래와 같은 shell script로 지정합니다.이름을
hmailedit라고 붙였다면, 'editor'란에 hmailedit라고 'C'를 눌러서
적어줍니다. hmailedit는 자신의 path에 있어야 하고, 물론
실행가능해야겠지요. 아래에서 'hvi'대신 한글 편집이 가능한
자신이 좋아하는 편집기를 넣어도 물론 상관없습니다. pico라면
'pico -t'로 '-t' option을 주십시오. emacs,hanemacs나
mule이라면 X window에서는 따로 window를 열기 싫으면 '-nw'
option을 줄 수도 있겠지요. 'hmconv'대신
iso-2022-kr<->ksc5601간 변환을 하는 다른 프로그램을 써도
됩니다. iso2022-kr이 아니면 이 변환기들은 아무런 일도 하지
않으므로, hmailedit를 영문 편지 작성에 써도 상관없습니다.
"hmconv $new $1"란 줄은 "cp $new $1"으로 바꾸고, 편지를 보내기
직전에 'filter through hmconv'란 질문에 yes로 답해도
됩니다.이것이 더 좋을 수도 있습니다. 왜냐하면, 그렇게 할 경우
hmailedit를 끝내고 난 다음에도 본문이 ISO-2022-KR이 아니라 KSC
5601로 되있다가 보내면서 sending filter(hmconv)를 거쳐서
ISO-2022-KR로 바뀌니까요. 그리고, hmconv는 같은 파일에 여러번
실행시켜도 한번만 인코드를 하니까,아래의 script를 그대로 쓰면서
filter through hmconv에 yes(혹은 바로 return)로 답해도
상관없습니다.
-------- hmailedit의 내용 ----------------
#!/bin/sh
new=/tmp/$$.`basename $1`
trap 'rm -f /tmp/$$.*; exit 1' 1 2 15
hmconv -u $1 $new
hvi $new
if test -r $new ;
then
hmconv $new $1 # 'mv $new $1' is perhaps better.
fi
/bin/rm $new
---------------------
꼭, hmconv(또는 다른 ksc5601<->iso-2022-kr 코드 변환기)의 full
path를 써 주어야 합니다. 그리고, : .cshrc/.tcshrc나 .bashrc(또는
ksh이라면 ENV 등에 지정된 파일) 등의 shell startup파일에서 stty와
같은 명령은 non-interactive shell일 경우에는 실행되지 않도록 해
주어야 합니다. filter 설정에 대한 도움말은 filter를 지정하는
곳에서 "?"를 누르면 나옵니다.
6. Printer 설정
Main menu에서 'S'을 누르고, 'P'를 눌러서 printer 설정을
시작합니다.
a. Pine이 돌아가는 호스트가 Unix이고 (혹은 VMS라도), 거기서
바로 쓸 수 있는 Postscript printer가 있는 경우에는 다음과
같이 합니다.
personally selected printer command를 선택한 다음에
'A'를 눌러 프린터를 추가합니다. 적당한 프린터 이름을
주고, 프린트 명령을 물으면 다음과 같이 합니다.
hcode -dk | h2ps | lp -d <printer-name> ; 시스템 V계열
hcode -dk | h2ps | lpr -P<printer-name> ; BSD 계열
Postscript printer가 없다면, h2ps와 lp나 lpr명령 사이에
PS를 사용하는 프린터가 이해하는 포맷으로 바꾸는 필터를
삽입해 주어야 합니다. 예를 들어, HP LJ III라면, 다음과
같이 합니다.
hcode -dk | h2ps | ps2lj3 | lp or lpr......
위에서 ps2lj3는 다음과 같은 shell script입니다.
#!/bin/sh
IN=$1
test $IN || { IN=/tmp/$$.stdin ;cat >$IN; }
gs -sDEVICE=ljet3 -sOutputFile=- -dNOPAUSE -q -- $IN
gs(ghostscript)가 설치되어 있어야합니다.
gs의 매뉴얼을 참고하여, 자신이 가진 프린터에
맞게 위에서 DEVICE 이름을 바꿔 주는 등으로 shell script를
만들어 HP InkJet이나 Canon BubbleJet,
Epson printer등으로도 출력이 가능합니다.
b. telnet이나 modem등으로 Pine이 돌아가는 호스트에
접속한 후, local printer(serial port에 붙은)로
한글을 출력하고 싶으면 맨 마지막의 lp나 lpr을
ansiprt로 바꿔 줍니다.
hcode -dk | h2ps | ansiprt (PS printer가 있는 경우)
hcode -dk | h2ps | ps2pcl | ansiprt (HP LJ III를 쓰는 경우)
c. h2ps의 폰트 모양이 마음에 들지 않으면, hpscat을 쓸 수도
있습니다.a.와 b.에서 h2ps를 다음 명령으로 바꿔 줍니다.
( cat Header Munjo ; hpscat )
Header와 Munjo는 한글 PS폰트로
ftp://ftp.kaist.ac.kr/pub/hangul/editor아래의
ked.tar.gz에 들어 있습니다. 한글 PS폰트가 내장된
PS 프린터 사용자는 단순히 h2ps를 hpscat으로만
바꿔줍니다.
d. 이 프린트 명령은 제대로 작동하지 않을 수도 있습니다.
7. 아래 명령을 쓰면 디폴트 값이 설정된 시스템 전체에 쓸
pine.conf가 만들어집니다. 이것을 위에서 pine 내부에서
설정을 변경하여 만든 ~/.pinerc와 비교해 가며
편집한 후에 /usr/local/lib/pine.conf에 두면
일반 사용자는 일일이 pine 설정을 하지 않아도
한글 메일 사용을 불편없이 할 수 있습니다.
% pine -conf > pine.conf
8. 두개 이상의 서로 다른 .pinerc를 두고서 한글 메일을
보낼 때와 영문 메일을 보낼 때 따로 쓸 수도 있습니다.
이렇게 하지 않아도 아무 문제가 없지만, 혹시 charset이
iso-2022-kr이나 euc-kr로 세팅된 편지에 대해 어떤 이로부터
(영문 편지만 주고 받는) 불평을 산다면, 두개의
configuration file을 만들어 놓고 쓸 수도 있습니다.
(Pine 3.95에서는 이렇게 할 이유가 전혀 없습니다.
내용을 검사해서 US-ASCII만 들어 있으면, charset
설정에 관계없이 US-ASCII라고 헤더에 적어서
보내기 때문입니다)
.pinerc.ko에는 위에서 세팅한 값들을 두고,
.pinerc.en에는 다른 것은 그대로 하고, charset만
us-ascii나 iso-8859-1로 바꾸면 됩니다. 원하면,
'send-offers-filter-first'도 off할 수도 있습니다.
즉, 1-5의 설정에 의해 만들어진 ~/.pinerc를
.pinerc.en으로 복사한 다음에 편집기로 필요한
것을 바꿔주면 됩니다. 또는, 'pine -p ~/.pinerc.en'으로
pine을 저장한 다음에 'S'와 'C'를 차례로 눌러
변경 후에 저장하면 ~/.pinerc.en에 저장이 됩니다.
% pine -p ~/.pinerc.ko ; 한글 메일 교환용
% pine -p ~/.pinerc.en ; 영문 메일 교환용
항상 이렇게 치는 것이 불편하므로, shell start up file에서
'kpine', 'epine'이란 alias를 만들어서 쓰면 편리할
것입니다.위처럼 쓰려면, 한글 메일을 위해 설정한 ~/.pinerc가
~/.pinerc.ko로 옮겨져야합니다. 자세한 것은 pine의
매뉴얼을 보시거나, comp.mail.pine이란 뉴스 그룹을
참고하십시오.
pine395k patch를 적용하지 **않은** Pine 3.92이후 판을 쓰고, 한글
sendmail이 없는 경우에는(있는 경우에도) charset을 ISO-2022-KR로
세팅하면, 한글 Subject가 ?EUC-KR?B?b_encoded_ksc_5601?= 대신
?ISO-2022-KR?B?b_encoded_ksc_5601?=와 같이 됩니다. 이것을 피하려면, 위의
4에서 언급한 바와 같이 charset을 EUC-KR로 하십시오. 그러면,
Content-type: 헤더에서 charset이 EUC-KR로 잘못 세팅(본문은 실제로
ISO-2022-KR인데도)되는 문제가 있기는 합니다만, 그리 큰 지장이 없고, 한글
제목이 받는 쪽의 hangul sendmail에 의해 제대로 디코드되는 장점이
있습니다. pine 395k patch를 적용해서 컴파일한 Pine 3.95에서는
이런 문제가 없습니다. charset을 iso-2022-kr로 세팅하는
것이 좋습니다.
신정식
참고 문헌
1. han.comp.mail, han.comp.hangul에 올라온 여러가지 글들
2. 한글 FAQ의 Subject 8과 Subject 9.
http://pantheon.cis.yale.edu/~jshin/faq/hancode.html
http://pantheon.cis.yale.edu/~jshin/faq/hmail.html
또는 ftp://rtfm.mit.edu나 그 미러 사이트,
soc.culture.korean,alt.intenet.services,
comp.misc, alt.talk.korean, news.answers
그룹에도 올라와 있음.
3. 2에서 언급한 다른 문서들
4. pine의 온라인 매뉴얼 페이지
5. Usenet newsgroup comp.mail.pine
6. Pine home page at http://www.cac.washington.edu/pine
:w!
:wq!
:h