´ÙÀ½ ÀÌÀü Â÷·Ê

4. ÇѱÛÁö¿ø

¸ÞÀÏ¿¡¼­ »ç¿ëµÇ´Â SMTPÇÁ·ÎÅäÄÝÀº ±âº»ÀûÀ¸·Î 7bit¹®ÀÚ¸¸À» ±â¹ÝÀ¸·Î Á¦À۵Ǿú½À´Ï´Ù. ÇÏÁö¸¸ ÇѱÛÀÇ °æ¿ì EUC-KR·Î Ç¥ÇöÇϸé 8bit¸¦ »ç¿ëÇϱ⠶§¹®¿¡ ¹®Á¦°¡ »ý±æ ¼ö ÀÖ½À´Ï´Ù. µû¶ó¼­ ¸ÞÀÏ¿¡¼­ »ç¿ëÇϱâ À§ÇØ ÇѱÛÀÇ 7bit Ç¥Çö¹æ¹ýÀÎ ISO-2022-kr(RFC 1557)ÀÌ ¸¸µé¾î Á³°í ¸ÞÀÏÀÇ º»¹®¿¡ »ç¿ëµÇ¾ú½À´Ï´Ù(Çì´õ¿¡´Â EUC-KRÀ» B³ª QÀÎÄÚµù ¹æ¹ýÀ¸·Î ÀÎÄÚµùÇؼ­ »ç¿ëÇß½À´Ï´Ù.). ÇÏÁö¸¸ ´ëºÎºÐÀÇ ÇÁ·Î±×·¥¿¡¼­´Â ÇѱÛÀ» 8bitÇ¥Çö¹æ¹ýÀÎ EUC-KRÀ» »ç¿ëÇßÀ¸¹Ç·Î ÀÌ µÎ Ç¥Çö°£ÀÇ º¯È¯À» ÇØ ÁÖ´Â ÇÁ·Î±×·¥ÀÌ ÇÊ¿äÇß½À´Ï´Ù. ÀÌ ÀÛ¾÷Àº Å©°Ô MTA, MDA, MUA¿¡¼­ ÇØ ÁÙ ¼ö ÀÖ½À´Ï´Ù. MTA¿¡¼­ º¯È¯À» ÇØ ÁÖ´Â ´ëÇ¥ÀûÀÎ ÇÁ·Î±×·¥ÀÌ sendmail 8.6.12h2ÀÔ´Ï´Ù. ÀÌ ÇÁ·Î±×·¥Àº ÇÁ·Î±×·¥À¸·ÎºÎÅÍ 8bitÇ¥ÇöÀ» ÀÔ·ÂÀ¸·Î ¹Þ¾Æ¼­ ´Ù¸¥ °÷À¸·Î Àü¼ÛÇÒ¶§ ISO-2022-kr·Î º¯È¯ÇÑ ÈÄ Àü¼ÛÀ» ÇÏ°í, ³×Æ®¿÷À» ÅëÇØ ¹ÞÀº ISO-2022-kr·Î Ç¥ÇöµÈ ¸ÞÀÏÀ» EUC-KR·Î º¯È¯ ÈÄ ¸ÞÀϹڽº¿¡ ÀúÀåÇϵµ·Ï ¸¸µé¾î Á³½À´Ï´Ù. ±×·¡¼­ ¸î³âÀü±îÁö¸¸ Çصµ ´ëºÎºÐÀÇ ¸ÞÀϼ­¹ö¿¡¼­ sendmail 8.6.12h2¸¦ »ç¿ëÇß¾ú½À´Ï´Ù.

ÇÏÁö¸¸ SMTP ÇÁ·ÎÅäÄÝÀÌ 8bit¹®ÀÚ¸¦ Áö¿øÇÏ´Â ESMTP ÇÁ·ÎÅäÄÝ·Î º¯Çϸ鼭 º»¹®¿¡¼­µµ ISO-2022-kr´ë½Å¿¡ EUC-KRÀ» »ç¿ëÇϵµ·Ï Ç¥ÁØÀÌ ¹Ù²î¾ú½À´Ï´Ù. ÇÏÁö¸¸ ÀÌ ¾ÈÀ» Á¤½Ä Ç¥ÁØÀ¸·Î °øÇ¥ÇÏÁö ¾Ê¾Ò°í, ¾ÆÁ÷±îÁö ÀÎÅͳݿ¡´Â ISO-2022-kr ·Î Ç¥ÇöµÈ ¸ÞÀÏÀÌ µ¹¾Æ´Ù´Ï±â ¶§¹®¿¡ ÀÌ ¸ÞÀÏÀ» EUC-KR·Î º¯È¯ÇØ ÁÖ´Â ÀÛ¾÷ÀÌ Ãß°¡ÀûÀ¸·Î ÇÊ¿äÇÏ°Ô µÇ¾ú½À´Ï´Ù.

ISO-2022-krÀ» EUC-KR·Î º¯È¯ÇØ ÁÖ´Â ÇÁ·Î±×·¥µéÀº UNIXȯ°æ¿¡¼­´Â ¸¹ÀÌ ¸¸µé¾î Á³½À´Ï´Ù. hconv¿Í hmconv°¡ ´ëÇ¥ÀûÀÎ ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ÀÌÁ¦ °ü¸®ÀÚ°¡ ÇØ Áà¾ß ÇÏ´ÂÀÏÀº sendmailÀÌ ¹ÞÀº ¸ÞÀÏÀ» ¸ÞÀϹڽº·Î ÀúÀåÇϱâ Àü¿¡ ÀÌ ÇÁ·Î±×·¥À» Åë°úÇÏ°Ô ¸¸µé¾î¼­ ISO-2022-krÀ» EUC-KR·Î º¯È¯¸¸ ÇØ ÁÖ¸é µÇ°Ô µÇ¾ú½À´Ï´Ù. ÀÌ·¸°Ô ÇÊÅ͸µÀ» °¡´ÉÇÏ°Ô ÇØ ÁÖ´Â ´ëÇ¥ÀûÀÎ ÇÁ·Î±×·¥ÀÌ procmailÀÔ´Ï´Ù.

¿©±â¿¡¼­´Â procmailÀ» ÀÌ¿ëÇÏ¿© ÇÑ±Û ¸ÞÀÏÀ» ó¸®ÇÏ´Â °úÁ¤À» ¼³¸íµå¸®°Ú½À´Ï´Ù. ¿©±â¿¡¼­ ¾Ë¾ÆµÎ¼Å¾ß ÇÒ ³»¿ëÁß¿¡ Áß¿äÇÑ ³»¿ëÀ¸·Î MDA¿¡ ´ëÇÑ ÀÌÇØÀÔ´Ï´Ù. MDA(Mail Delivery Agent)´Â MTA(Mail Transfer Agent, ´ëÇ¥ÀûÀÎ ¿¹´Â sendmailÀÔ´Ï´Ù.)°¡ ¹ÞÀº ¸ÞÀÏÀÇ ÃÖÁ¾ÀûÀÎ µµÂøÁö°¡ ÇöÀç È£½ºÆ®Àΰæ¿ì(sendmailÀÇ °æ¿ì sendmail.cw¸¦ Âü°íÇÏ¿© °áÁ¤ÇÕ´Ï´Ù.) ¸ÞÀÏÀ» MDA¿¡°Ô ³Ñ°ÜÁÝ´Ï´Ù. º¸Åë ½Ã½ºÅÛÀÇ ±âº»ÀûÀÎ MDA´Â /bin/mailÀÔ´Ï´Ù. procmailÀº /bin/mail´ë½Å¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¥À¸·Î ÇÊÅ͸µ ±â´ÉÀÌ °­·ÂÇÏ¿© ÇѱÛ󸮿¡ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

¶Ç À߸ø ÀÌÇØÇϽô ºÐµéÁß¿¡ procmailÀÚü°¡ ÇÑ±Û µðÄÚµùÀ» ÇØÁØ´Ù°í ¾Ë°í °è½ÅºÐµéÀÌ ¸¹½À´Ï´Ù. ÀÌ°ÍÀº À߸øµÈ °ÍÀÔ´Ï´Ù. ½ÇÀç·Î procmailµµ ÇÑ±Û µðÄÚµùÀ» À§ÇØ ´Ù¸¥ ÇÁ·Î±×·¥(º¸Åë hcode³ª hmconv¸¦ ÀÌ¿ëÇÕ´Ï´Ù.)À» ÀÌ¿ëÇÕ´Ï´Ù. procmailÀÌ ÇÏ´ÂÀÏÀº ´Ü¼øÈ÷ ¾î¶² Çì´õ°¡ ÀÖÀ»¶§ Àû´çÇÑ ÇÁ·Î±×·¥À» ºÒ·¯ ÇÑ±Û µðÄÚµùÀ» ÇØ ÁÝ´Ï´Ù.

µû¶ó¼­ procmail»Ó¸¸ ¾Æ´Ï¶ó ÇÑ±Û µðÄÚµùÀ» À§ÇÑ ÇÁ·Î±×·¥À» ¼³Ä¡ÇÏ¼Å¾ß ÇÕ´Ï´Ù. ¿©±â¿¡¼­´Â hcode¸¦ »ç¿ëÇϵµ·Ï ÇÏ°Ú½À´Ï´Ù.

hcode´Â ftp://ftp.kaist.ac.kr/hangul/code/hcode/¿¡¼­ ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. °¡Á®¿Â ÇÁ·Î±×·¥À» Àû´çÇÑ µð·ºÅ丮¿¡ Ç®°í ¼Ò½º µð·ºÅ丮¿¡¼­ ´Ü¼øÈ÷ make¸¦ ÀÔ·ÂÇϸé ÄÄÆÄÀÏÀÌ ¿Ï·áµË´Ï´Ù. ÄÄÆÄÀÏ °á°ú·Î »ý±ä hcode¸¦ /usr/local/bin ¿¡ º¹»çÇØ µÓ´Ï´Ù.(´Ù¸¥ µð·ºÅ丮µµ »ó°ü¾ø½À´Ï´Ù.)

±×´ÙÀ½ procmailÀ» ¼³Ä¡ÇÕ´Ï´Ù. procmailÀº ´ëºÎºÐÀÇ ftp¼­¹ö¿¡¼­ ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. (ÀúÀÇ °æ¿ì ftp://ftp.kreonet.re.kr/pub/tools/mail/procmail/¿¡¼­ ±¸Çß½À´Ï´Ù.) ÇÁ·Î±×·¥À» ±¸ÇÑ ÈÄ µð·ºÅ丮¿¡¼­ make¸¦ ÀÔ·ÂÇÑ ÈÄ ¸Þ½ÃÁö¿¡ ³ª¿Â´ë·Î ´ë´äÇÏ¸é ¼³Ä¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸¸µé¾îÁø procmailÀ» ¿ª½Ã /usr/local/bin¿¡ ¼³Ä¡ÇÕ´Ï´Ù.

±×·±´ÙÀ½ /etc/procmailrc¸¦ ¾Æ·¡¿Í °°ÀÌ ¸¸µé¾î µÓ´Ï´Ù.

LOGFILE=/var/log/procmail
VERBOSE=no
PATH=/usr/local/bin:/usr/bin:/bin
SHELL=/bin/sh 

:0 B
*^.\$\)C
{
  :0 fbw
  |hmconv -u

  :0 fhw
  * ^Content-Type: text/plain
  |formail -c -I "Content-Type: text/plain; charset=EUC-KR" -I \
  "Content-Transfer-Encoding: 8bit"

  :0 Efhw
  * ^Content-Type: text/html
  |formail -c -I "Content-Type: text/html; charset=EUC-KR" -I \
  "Content-Transfer-Encoding: 8bit"

  :0 Efhw
  * !^Content-Type:
  |formail  -c -I "Content-Type: text/plain; charset=EUC-KR" -I \
  "Content-Transfer-Encoding: 8bit"

  # Note that '-c' flag has been added to formail invocation.
  # It concatenates a  header of multiple lines into a single line
  # so that a bug in 'hcode -dk -m' dealing with RFC 2047 encoded header
  # has less 'harmful' effect.

  :0 fhw
  | formail -A  \
  "X-Automatic-Korean-Mail-Conversion: iso-2022-kr to euc-kr" 

}

DROPPRIVS=yes

:0 fhw
*Content-Type:.+; charset="?EUC-KR
| formail -c | hcode -dk -m 

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

±×´ÙÀ½ sendmail¿¡¼­ MDA·Î procmailÀ» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï sendmail.cfÆÄÀÏÀ» ¼öÁ¤ÇØ Áà¾ß ÇÕ´Ï´Ù. sendmail.cfÆÄÀÏ¿¡¼­ MlocalºÎºÐÀ» ã¾Æ¼­ ¾Æ·¡¿Í °°ÀÌ ¼öÁ¤ÇÏ½Ã¸é µË´Ï´Ù.

Mlocal,         P=/usr/local/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=10/30, R=20/40,
                T=DNS/RFC822/X-Unix,
                A=procmail -Y -a $h -d $u

ÇÏÁö¸¸ ÀÌ ¹æ¹ýº¸´Ù´Â mcÆÄÀÏ¿¡ FEATURE(local_procmail)À» Ãß°¡ÇÏ¿© sendmail.cf¸¦ »ý¼ºÇÏ´Â ¹æ¹ýÀÌ ÁÁ½À´Ï´Ù.

Á¦°¡ ¿©±â¿¡¼­´Â °£´ÜÇÏ°Ô ¼³¸íÀ» µå·ÈÁö¸¸ Á»´õ ÀÚ¼¼ÇÑ ³»¿ëÀÌ ÇÊ¿äÇϽŠºÐÀº ½ÅÁ¤½Ä´ÔÀÇ Sendmail 8.8.x ÀÌÈÄ ÆÇ°ú ProcmailÀ» ÀÌ¿ëÇÑ ÇÑ±Û ¸ÞÀÏ Ã³¸®¸¦ Âü°íÇϽñ⠹ٶø´Ï´Ù.

ÀÌ ÀÛ¾÷ÀÌ ±ÍÂú°Ô ´À²¸Áö½Å´Ù¸é À§¿¡¼­ ÇÏ´ÂÀÛ¾÷°ú µ¿ÀÏÇÑ ÀÏÀ» ÇÏ´Â ÇÑ±Û sendmailÀ» ¼³Ä¡ÇÏ½Ã¸é µË´Ï´Ù. ÇÏÁö¸¸ ÇÑ±Û sendmailÀº ¿µ¹® sendmail¿¡ ºñÇØ ¹öÀüµµ ³·°í, ¶Ç´Ù¸¥ ¿À·ù°¡ »ý±æ È®·üÀÌ ³ô±â¶§¹®¿¡ À§ÀÇ ¹æ¹ýÀ» »ç¿ëÇϽñ⠹ٶø´Ï´Ù.


´ÙÀ½ ÀÌÀü Â÷·Ê