Á¤º¸´Â °øÀ¯ µÇ¾î¾ß Çϱ⿡
Á¦°¡ ¿î¿µÇÏ´Â www.ihelpers.co.kr¿¡ ÀÖ´Â °Á¸¦ ÀÌ°÷¿¡ ¿Ã¸³´Ï´Ù.
1. ¸ÞÀÏ È®ÀÎ
2. ¸ÞÀÏ Á¶È¸
3. ¸ÞÀÏ Áö¿ì±â
4. ¸ÞÀÏ º¸³»±â
¼¼¹ø° °Á ½Ã°£ÀÔ´Ï´Ù. ¿À´ÃÀº ¸ÞÀÏÀÇ ±¸Á¶¸¦ ¶â¾î º¸´Â ½Ã°£ÀÌ µÇ°Ú³×¿ä.
¸ÞÀÏÀÇ ±¸Á¶¸¦ ¼³¸íÇÏ´Â °Í¸¸ Çصµ ³Ê¹« ¸¹°í ¶Ç Àúµµ Àß ¸ð¸£±â¿¡... ±×³É °¡º±°Ô ¼³¸íÇÏ
¸é¼ °Á¸¦ ÁøÇàÇϵµ·Ï ÇÏÁÒ.
Àú¹øó·³ ¸ÕÀú °Á¸¦ ÇÏ°í ¼Ò½º¸¦ ¼³¸íÇÏÁÒ...
mail_detail.php
----------------------------------------------------------------
<?
// ÇÊ¿äÇÑ ¼ºê ÇÔ¼öÀÔ´Ï´Ù.. ¾Æ·¡ ¸ÞÀÎÀÇ ¼Ò½º¸¦ º¸½Ã°í ÀÌ ÇÔ¼ö ³»¿ëÀº ¸¶Áö¸·¿¡ º¸¼¼¿ä.
// ¸ÞÀÏÀÇ ±¸Á¶¸¦ ºÐ¼®ÇÏ´Â ÇÔ¼ö
function checkstruct($mailstream, $MSG_NO) {
// ¸ÞÀÏ ±¸Á¶ ºÐ¼®
$struct = imap_fetchstructure($mailstream, $MSG_NO);
// ¸ÞÀÏÀÇ ±¸Á¶¸¦ °´Ã¼·Î ¸®ÅÏÇØ ÁÝ´Ï´Ù. ÀÎÀÚ´Â ¸ÞÀϽºÆ®¸²°ú ÇØ´ç ¸ÞÀϹøÈ£ÀÔ´Ï´Ù.
$type = $struct->subtype;
/*
¸ÞÀÏÀÇ Å¸ÀÔÀ» ¾ò½À´Ï´Ù. Å©°Ô PLAIN, MIXED, ALTERNATIVE, RELATED ÀÌ·¸°Ô ÀÖÀ¾
´Ï´Ù.. ( ´õ ÀÖ´ÂÁöµµ ¸ð¸£ÁÒ... ^ ^)
PLAIN : ±×³É ÅؽºÆ® ¸ÞÀÏÀÌÁÒ.. ÀÌ°Ç ±×³É Ãâ·Â¸¸ ÇØÁÖ¸é µË´Ï´Ù..
MIXED : ÷ºÎÆÄÀÏÀÌ ÀÖ´Â ¸ÞÀÏÀ̶õ °Çµ¥... ÀÌ°Ô °¡Àå º¹ÀâÇÏÁÒ.. ¾Æ·¡ switch¹®¿¡
switch ¹®¿¡¼ ¼³¸íÇÏÁÒ.
ALTERNATIVE : HTML Çü½ÄÀ¸·Î ¸ÞÀÏÀ» º¸³»¸é ÀÌ°Ô µË´Ï´Ù.
RELATED : HTML Çü½ÄÀ¸·Î º¸³¾¶§ º¸¸é ¸ÞÀϾȿ¡ À̹ÌÁö¸¦ »ðÀÔÇؼ º¸³¾ ¼ö ÀÖ½À´Ï´Ù.
±× °æ¿ì¿¡ ÇØ´çµË´Ï´Ù.
¾Æ·¡¿¡¼ ÀÚ¼¼È÷ º¸ÁÒ..
*/
switch($type) {
case "PLAIN": // ÀϹÝÅؽºÆ® ¸ÞÀÏ
echo str_replace("\n", "<br>",
imap_fetchbody($mailstream, $MSG_NO, "1"));
// ±×³É º»¹®À» ¾ò¾î¼ Ãâ·ÂÇØ ÁÖ¸é µË´Ï´Ù.
// º»¹®À» ¾ò´Â ¹æ¹ýÀº À§Ã³·³ imap_fetchbody ÇÔ¼ö¸¦ »ç¿ëÇϴµ¥.. ¿©±â¼ ¼¼¹ø°
// ÀÎÀÚ°¡ "1" ÀÌ·¸°Ô µÇ¾î ÀÖÁÒ. ÀÌ°ÍÀº ¸ïÀÏÀÇ body°¡ boundary¶ó´Â °ÍÀ¸·Î ±¸ºÐ
// µÇ¾î ¿©·¯°³°¡ ¿Ã ¼ö Àִµ¥ ±× Áß Ã¹¹ø° °ÍÀ̶õ °Ì´Ï´Ù.. ´ç¿¬ ÅؽºÆ® ¸ÞÀÏÀº
// body°¡ Çϳª¹Û¿¡ ¾ø±â¿¡ ±×³É ¹«Á¶°Ç À§Ã³·³ ÇÏ¸é µË´Ï´Ù.
break;
case "MIXED": // ÷ºÎÆÄÀÏ ÀÖ´Â ¸ÞÀÏ
/*
ÀÌ°Ô Á» º¹ÀâÇÏÁÒ. ¸ÕÀú À§¿¡¼ ¸»Çßµí ÷ºÎÆÄÀÏÀÌ ÀÖ´Â °ÍÀº body°¡ ¿©·¯°³ÀÔ´Ï´Ù.
Áï ÷ºÎÆÄÀÏÀÌ µÎ°³ÀÎ text ¸ÞÀÏÀÏ °æ¿ì body´Â ¼¼°³·Î ³ª´µÁÒ..
ÀÌ ¼¼°³ÀÇ body¸¦ °¢°¢ Ç¥ÇöÇÏ´Â °ÍÀÌ µÇ°Ú½À´Ï´Ù.
*/
for($i=0;$i<count($struct->parts);$i++) {
// parts¶ó´Â ¼Ó¼º¿¡´Â boundary·Î ±¸ºÐµÈ bodyÀÇ °³Ã¼µéÀÌ µé¾î °¡°Ô µË´Ï´Ù.
// ÀÌ°ÍÀÇ °¹¼ö¸¦ ¾Ë¾Æ¼ ·çÇÁ¸¦ µ¹¸®´Â °ÅÁÒ.
$part = $struct->parts[$i];
$param = $part->parameters[0];
$file_name = Decode($param->value);
// ÷ºÎÆÄÀÏÀÏ °æ¿ì ÆÄÀϸí Decode ÇÔ¼ö´Â ¾îÁ¦ ¸»ÇÑ Á¦°¡ ¸¸µç °ÅÁÒ...
$mime = $part->subtype; // MIME ŸÀÔ È¤Àº ¸ÞÀÏÀÇ Á¾·ù°¡ ¸®Åϵ˴ϴÙ.
$encode = $part->encoding; // encoding
/*
¾Æ·¡ ºÎºÐÀ» º¸¸é $mime À̶õ º¯¼ö¿¡ ALTERNATIVE ¶ó´Â °ÍÀÌ ¿Ã¼ö ÀÖ°Ô µÇ¾î
ÀÖ½À´Ï´Ù.. Áï OUTLOOK¿¡¼ HTML Çü½ÄÀ¸·Î ÷ºÎÆÄÀÏÀ» º¸³»¸é ´ë·«
-¸Þ¼¼Áö
-÷ºÎÆÄÀÏ1
-÷ºÎÆÄÀÏ2
-÷ºÎÆÄÀÏ3
ÀÌ·¸°Ô ³ª´µ°í ´Ù½Ã ¸Þ¼¼Áö´Â
---PLAN
---HTML
ÀÌ·¸°Ô ³ª´µ°Ô µË´Ï´Ù.. ÀÌ°æ¿ì ¸Þ¼¼Áö¿¡ ÇØ´çÇÏ´Â ºÎºÐÀÌ ALTERNATIVEÀÎ °ÅÁÒ..
*/
if($mime == "ALTERNATIVE") {
$val = imap_fetchbody($mailstream, $MSG_NO, (string)($numpart+1));
// ÇØ´ç partÀÇ ¹øÈ£·Î body¿¡¼ ±× ºÎºÐ¸¸ »©¿É´Ï´Ù. ±×¸®°ï ÀÌ°ÍÀ»
// ȸ鿡 Ãâ·ÂÇÏÁÒ.. ¾Æ·¡ ÇÔ¼ö·Î.. ÀÌ°ÍÀº Á¦°¡ ¸¸µç °Çµ¥.. ³ªÁß¿¡ ¼³¸íÇÏÁÒ.
printOutLook($val);
} else {
printbody($mailstream, $MSG_NO, $i, $encode, $mime, $file_name);
// ÷ºÎÆÄÀÏÀÏ °æ¿ì printbodyÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù.. ÀÌ°Ç ¹Ù·Î ¹Ø¿¡ ÀÖ´Â ÇÔ¼öÀÎ
// µ¥ °Å±â¼ ¼³¸íÇÏÁÒ..
}
}
break;
case "ALTERNATIVE": // outlook html
for($i=0;$i<count($struct->parts);$i++) {
$part = $struct->parts[$i];
$param = $part->parameters[0];
$file_name = Decode($param->value); // ÷ºÎÆÄÀÏÀÏ °æ¿ì ÆÄÀϸí
$mime = $part->subtype;
$encode = $part->encoding;
if($mime == "HTML") {
printbody($mailstream, $MSG_NO, $i, $encode, $mime, $file_name);
}
}
break;
case "RELATED": // outlook º»¹®¿¡ À̹ÌÁö »ðÀÔ
for($i=0;$i<count($struct->parts);$i++) {
$part = $struct->parts[$i];
$param = $part->parameters[0];
$file_name = Decode($param->value); // ÷ºÎÆÄÀÏÀÏ °æ¿ì ÆÄÀϸí
$mime = $part->subtype; // MIME ŸÀÔ
$encode = $part->encoding; // encoding
if($mime == "ALTERNATIVE") {
$val = imap_fetchbody($mailstream, $MSG_NO, (string)($numpart+1));
printOutLook($val);
} else {
printbody($mailstream, $MSG_NO, $i, $encode, $mime, $file_name);
}
}
break;
}
}
// ¸ÞÀÏ ³»¿ëÀ» Ãâ·ÂÇÏ´Â ÇÔ¼ö
function printbody($mailstream, $MSG_NO, $numpart, $encode, $mime, $file_name) {
$val = imap_fetchbody($mailstream, $MSG_NO, (string)($numpart+1));
// ¸ÕÀú ÇØ´ç partÀÇ º»¹®À» ¹Þ¾Æ ¿É´Ï´Ù.
// ±×¸®°í ÀÎÀÚ°ªÀ¸·Î ³Ñ¾î¿Â $encode ¿¡ ÀÇÇØ ¸ÕÀú º»¹®À» decoding ÇØÁÝ´Ï´Ù.
switch($encode) {
case 0: // 7bit
case 1: // 8bit
$val = imap_base64(imap_binary(imap_qprint(imap_8bit($val))));
break;
case 2: // binary
$val = imap_base64(imap_binary($val));
break;
case 3: // base64
$val = imap_base64($val);
break;
case 4: // quoted-print
$val = imap_base64(imap_binary(imap_qprint($val)));
break;
case 5: // other
echo "¾Ë¼ö¾ø´Â Encoding ¹æ½Ä.";
exit;
}
// mime type ¿¡ µû¶ó Ãâ·ÂÇÕ´Ï´Ù.
switch($mime) {
case "PLAIN":
echo str_replace("\n", "<br>", $val);
break;
case "HTML":
echo $val;
break;
default:
// ÷ºÎÆÄÀÏÀÎ °æ¿ìÀ̹ǷΠ´Ù¿î·Îµå ÇÒ ¼ö ÀÖ°Ô ¸µÅ©¸¦ °É¾î ÁÝ´Ï´Ù.
echo "<br>÷ºÎ: <a href="mail_down.php?
MSG_NO=" . $MSG_NO . "&PART_NO=
" . $numpart . "" >" . $file_name . "</a>";
}
}
// ----------------------
// ¸ÞÀÎ ½ÃÀÛ
// include ¼±¾ð
// ----------------------
include ("mail_lib.php"); // ¶óÀ̺귯¸® ÆÄÀÏ¿£ Áö³¹ø °Á¿¡ ÀÖ´ø Decode¶ó´Â ÇÔ¼ö°¡ ÀÖÁÒ.
?>
<html>
<body>
<?
$box = $BOX; // ¸ÞÀÏ ¹Ú½º¸í
if($box == "") $box = "INBOX";
switch($box) {
case "INBOX":
$box_name="¹ÞÀº ÆíÁöÇÔ";
break;
case "sent":
$box_name="º¸³½ ÆíÁöÇÔ";
break;
}
?>
<body bgcolor="#FFFFFF" leftmargin=5 topmargin=20 marginwidth=5 marginheight=20>
<table width="610" border=0 bgcolor=#527900 cellpadding=4 cellspacing=0>
<tr>
<td align=center width="25" bgcolor="#334600">
<font face="Wingdings" size="4" color="#FFCC33">.</font></td>
<td width=95%>
<font size="3" color="#FFFFFF"><b>ÆíÁöÀбâ</b></font>
</td>
</tr>
</table>
<table width=610 border=0 cellpadding=4 cellspacing=0 bgcolor=#D8D8D8>
<tr>
<td class="tk1" width=40%></td>
<td align="right" class="tk1" width=60%>
<a href="mail_cmd.php?CMD=del&NO[]=<?echo $MSG_NO;?>">»èÁ¦</a>
[<a href="mail_list.php?BOX=<?echo $box;?>">¸ñ·Ï</a>]
</td>
</tr>
</table>
<?
$login = "userid";
$pass = "pwd";
$C_DOMAIN = "hagopa.co.kr";
$mailstream = imap_open("{" . $C_DOMAIN . ":143}" . $box, $login, $pass);
if ($mailstream == 0) {
echo "Error!
";
exit;
}
// ¸ÞÀÏ Çì´õ ºÐ¼®
$head = imap_header($mailstream,$MSG_NO);
$head->Unseen = "U";
$date = date("Y³â m¿ù dÀÏ H½Ã iºÐ", $head->udate);
$subject = $head->Subject;
$subject = Decode($subject);
$from_obj = $head->from[0];
$from_name = $from_obj->personal;
$from_addr = substr($from_obj->mailbox . "@" . strtolower($from_obj->host), 0, 30);
if($from_name == "") $from_name = $from_addr;
$from_name = Decode($from_name);
// ¿©±â±îÁö´Â Áö³¹ø °Á¿¡¼ ÇÑ °Í°ú µ¿ÀÏÇÏÁÒ.. ¼³¸í ¾ÈÇÏ°Ú½À´Ï´Ù.
?>
<table width=610 border=0 cellpadding=2 cellspacing=0 bordercolor=#E8E8E8>
<tr>
<td class="tk1" align="center" bgcolor="#EEEEEE" width="100">º¸³½³¯Â¥</td>
<td class="tk1" bgcolor="#F7F7F7"><?echo $date;?></td>
</tr>
<tr>
<td class="tk1" align="center" bgcolor="#EEEEEE">º¸³½ÀÌ</td>
<td class="tk1" bgcolor="#F7F7F7"><?echo "<a href=mailto:$from_addr>$from_name</a>
";?></td>
</tr>
<tr>
<td class="tk1" align="center" bgcolor="#EEEEEE">Á¦ ¸ñ</td>
<td class="tk1" bgcolor="#F7F7F7"><?echo $subject;?></td>
</tr>
</table>
<table width="610" border="0" cellpadding="4">
<tr>
<td class="tk1">
<?
checkstruct($mailstream, $MSG_NO);
imap_close($mailstream);
/*
À§ÀÇ µÎ°³ÀÇ ÇÔ¼ö°¡ À̹ø °ÁÂÀÇ ÇÏÀ̶óÀÌÆ®ÁÒ... Çϳª Çϳª ¼³¸íÇÕ´Ï´Ù. ¼³¸íÀº À§¿¡ ÇØ´ç ÇÔ¼ö ¼±¾ðµÈ
°÷À» º¸¼¼¿ä.
*/
?>
</td>
</tr>
</table>
<table width=610 border=0 cellpadding=4 cellspacing=0 bgcolor=#D8D8D8>
<tr>
<td class="tk1" width=40%></td>
<td align="right" class="tk1" width=60%>
<a href="mail_cmd.php?BOX=<?echo $box;?>&CMD=del&NO[]=<?echo $MSG_NO;?>">»èÁ¦</a>
[<a href="mail_list.php?BOX=<?echo $box;?>">¸ñ·Ï</a>]
</td>
</tr>
</table>
<br>
</body>
</html>
Á¶±Ý º¹ÀâÇÏÁÒ.. ´ÙÀ½¿£ ÷ºÎÆÄÀÏ¿¡ ¸µÅ©¸¦ °É¾ú´ø mail_down.php ÆÄÀÏ¿¡ ´ëÇØ ¼³¸íÇÏÁÒ...
211.244.103.10 |