Бърз Webmail
Автор: boby
Сега ще ви покажа как да направите бърз Webmail (получаване, изпращане, триене, отговор на писма) с помощта на един PHP скрипт. Скрипта работи с един email. Ето скрипта:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<?php
$type = "POP3"; //àêî å IMAP íàïèøåòå IMAP
$server = "тук напишете домейна на сайта ви";
$username = "тук напишете e-maila, с който искате да работи системата";
$password = "тук паролата за e-maila";
if($CMD == "topframe") {
if($type == "POP3") {
$mbox = imap_open("{".$server.":110/pop3}INBOX", $username, $password);
} elseif($type == "IMAP") {
$mbox = imap_open("{".$server."}INBOX", $username, $password);
}
echo "<META HTTP-EQUIV='refresh' CONTENT='1500'>\n";
echo "<BODY BGCOLOR=BLUE><FONT COLOR=WHITE>\n";
$mcheck = imap_check($mbox);
$mnum = $mcheck->Nmsgs;
$overview = imap_fetch_overview($mbox, "1:$mnum", 0);
echo "<TABLE BORDER=0>\n";
echo "<TR><TD>FROM</TD><TD>ÎÒÍÎÑÍÎ</TD><TD>DATE</TD><TD>Îïöèè</TD></TR>";
$nbm = sizeof($overview);
for($i= $nbm-1; $i >= 0; $i--) {
$val=$overview[$i];
$nb=$val->msgno;
$rawsubject = imap_mime_header_decode($val->subject);
$subject = $rawsubject[0]->text;
if($subject == ''){ $subject = "(íÿìà îòíîñíî)"; }
$from=$val->from;
$date=$val->date;
echo "<TR><TD><A HREF='$PHP_SELF?CMD=view&num=$nb' STYLE='cursor:hand' STYLE='color:white'>";
echo "$from</A></TD><TD><A HREF='$PHP_SELF?CMD=view&num=$nb' STYLE='color:white'>$subject</A></TD><TD><A HREF='$PHP_SELF?CMD=view&num=$nb' STYLE='color:white'>$date</A></TD><TD><A HREF='$PHP_SELF?CMD=delete&num=$nb' STYLE='color:white'>Èçòðèé</A></TR>";
}
echo "</TABLE>\n</BODY>";
if($overview30 = imap_fetch_overview($mbox, "1:0", 0)) {
echo "<BR><FONT COLOR='white'>Íÿìàòå ñúîáùåíèÿ âúâ âõîäÿùàòà ïîùà.</FONT>";
}
imap_close($mbox);
} elseif($CMD == "view") {
if($type == "POP3") {
$mbox = imap_open("{".$server.":110/pop3}INBOX", $username, $password);
} elseif($type == "IMAP") {
$mbox = imap_open("{".$server."}INBOX", $username, $password);
}
$info=imap_header($mbox, $num);
$from=$info->from[0];
echo "<STYLE> A { color:yellow } </STYLE>";
echo "<BODY BGCOLOR=BLUE>\n";
echo "<TABLE BORDER=0 BGCOLOR=BLUE><FONT COLOR=WHITE>";
echo "<TR><TD><A HREF='$PHP_SELF?CMD=topframe'>Âúðíè ñå â ñúîáùåíèÿ</A></TD><TD><A HREF='javascript:void(window.open(\"$PHP_SELF?CMD=reply&num=$num\"))'>Îòãîâîðè íà ñúîáùåíèåòî</A></TD><TD><A HREF='$PHP_SELF?CMD=delete&num=$num'>Èçòðèé òîâà ñúîáùåíèå</A></TD><TD><A HREF='javascript:void(window.open(\"$PHP_SELF?CMD=compose\"))'>Èçïðàòè íîâî ñúîáùåíèå</A></TD></TR>";
echo "<TR><TD>Îò:</TD><TD>$from->mailbox@$from->host</TD></TR>";
echo "<TR><TD>Äî:</TD><TD>$info->toaddress</TD></TR>";
if($info->ccaddress){ echo "<TR><TD>CC</TD><TD>$info->ccaddress</TD></TR>"; }
echo "<TR><TD>Äàòà</TD><TD>$info->Äàòà</TD></TR>";
echo "<TR><TD>Îòíîñíî</TD><TD>$info->Îòíîñíî</TD></TR>";
$structure = imap_fetchstructure($mbox, $num);
$structure=imap_fetchstructure($mbox,$num);
if(isset($structure->parts)) {
echo "<tr><td>Ïðèêà÷åíè ôàéëîâå</td><td>";
while(list($key,$val) = each($structure->parts)) {
if($key > 0) {
if($val->ifparameters) {
$attach=$val->parameters;
echo "<a href='$PHP_SELF?CMD=Attachview&num=$num&part=$key' TARGET=f>";
echo $attach[0]->value;
echo "</a>, ";
} else {
echo "<a href='$PHP_SELF?CMD=Attachview&num=$num&part=$key' TARGET=f>";
echo "(unnamed)</a>, ";
}
}
}
}
echo "</TABLE><BR><PRE>";
if(isset($structure->parts)) {
$body=imap_fetchbody($mbox,$num,1);
} else {
$body=imap_body($mbox,$num);
$body=str_replace("embed", "cleaned_tag", $body);
$body=str_replace("object", "cleaned_tag", $body);
}
echo $body;
echo "</PRE><BR>";
echo "<TABLE BORDER=0>";
echo "<TR><TD><A HREF='$PHP_SELF?CMD=topframe'>Âúðíè ñå â ñúîáùåíèÿ</A></TD><TD><A HREF='javascript:void(window.open(\"$PHP_SELF?CMD=reply&num=$num\"))'>Îòãîâîðè íà ñúîáùåíèåòî</A></TD><TD><A HREF='$PHP_SELF?CMD=delete&num=$num'>Èçòðèé òîâà ñúîáùåíèå</A></TD><TD><A HREF='javascript:void(window.open(\"$PHP_SELF?CMD=compose\"))'>Èçïðàòè íîâî ñúîáùåíèå</A></TD></TR>";
echo "</TABLE>";
imap_close($mbox);
} elseif($CMD == "reply") {
if($type == "POP3") {
$mbox = imap_open("{".$server.":110/pop3}INBOX", $username, $password);
} elseif($type == "IMAP") {
$mbox = imap_open("{".$server."}INBOX", $username, $password);
}
$replytext=imap_header($mbox, $num);
$to=$replytext->from[0];
echo "<BODY BGCOLOR=BLUE><FONT COLOR=WHITE>\n";
echo "<FORM ACTION='$PHP_SELF?CMD=send' METHOD='post'>\n";
echo "<H1>Îòãîâîð íà ñúîáùåíèå</H1>";
echo "Äî: <input type='text' name='to' value='$to->mailbox@$to->host'><BR>\n";
echo "Îò: <input type='text' name='fr' value='$replytext->toaddress'><BR>\n";
$subj = $replytext->Subject;
$subj = str_replace("Re: Re:", "", $subj);
echo "Îòíîñíî: <input type='text' name='su' value='Re: $subj'><BR>\n";
echo "<TEXTAREA ROWS='20' cols='30' name='ms'>";
$body = imap_body($mbox, $num);
$body = str_replace("\n", "\n>", $body);
$body = str_replace("<", "<", $body);
$body = str_replace(">", ">", $body);
$body = str_replace("=E6", "æ", $body);
$body = str_replace("=F8", "ø", $body);
$body = str_replace("=E5", "å", $body);
$body = str_replace("=C6", "Æ", $body);
$body = str_replace("=D8", "Ø", $body);
$body = str_replace("=C5", "Å", $body);
$body = str_replace("=A7", "§", $body);
$body = str_replace("=A4", "¤", $body);
$body = str_replace("=3D", "=", $body);
$body = str_replace("=20", " ", $body);
$body = str_replace("=A3", "£", $body);
$body = str_replace("=E4", "ä", $body);
$body = str_replace("=F6", "ö", $body);
$body = str_replace("=C4", "Ä", $body);
$body = str_replace("=D6", "Ö", $body);
echo $body;
echo "</TEXTAREA><BR>\n";
echo "<INPUT TYPE=submit value='Èçïðàòè ïèñìîòî'>";
imap_close($mbox);
} elseif($CMD == "delete") {
if($type == "POP3") {
$mbox = imap_open("{".$server.":110/pop3}INBOX", $username, $password);
} elseif($type == "IMAP") {
$mbox = imap_open("{".$server."}INBOX", $username, $password);
}
imap_delete($mbox, $num);
imap_expunge($mbox);
echo "<SCRIPT LANGUAGE='JavaScript'><!--\n\n";
echo "window.location='$PHP_SELF?CMD=topframe';\n";
echo "//--></SCRIPT>";
imap_close($mbox);
} elseif($CMD == "Attachview") {
if($type == "POP3") {
$mbox=imap_open("{".$server.":110/pop3}INBOX",$username,$password);
} elseif($type == "IMAP") {
$mbox=imap_open("{".$server."}INBOX",$username,$password);
} else {
echo "ÃÐÅØÊÀ!!! IMAP èëè POP3 íåâàëèäíè!"; exit;
}
$mimetype=array("text","multipart","message","application","audio","image","video","other");
$structure=imap_fetchstructure($mbox,$num);
$attach_body = imap_fetchbody($mbox,$num,$part+1);
$atype=$structure->parts[$part]->type;
if($atype=="") $atype=0;
$asubtype=$structure->parts[$part]->subtype;
if($asubtype == "") $asubtype='PLAIN';
$attach_type=$mimetype[$atype]."/".$asubtype;
$attach_name=$structure->parts[$part]->parameters[0]->value;
if($attach_name = "") $attach_name='(unnamed)';
$anencode=$structure->parts[$part]->encoding;
if($anencode == 3){
$return_content=imap_base64($attach_body);
} elseif($anencode == 4) {
$return_content=imap_qprint($attach_body);
} else {
$return_content=$attach_body;
}
header("Content-type: $attach_type");
if(($atype != 0) && ($atype != 5)){
header("Content-Disposition: attachment; filename=$attach_name");
}
echo $return_content;
} elseif($CMD == "compose") {
echo "<BODY BGCOLOR=BLUE><FONT COLOR=WHITE>\n";
echo "<FORM ACTION='$PHP_SELF?CMD=send' METHOD='post'>\n";
echo "<H1>Íàïèøè íîâî ïèñìî</H1>";
echo "Äî: <input type='text' name='to' value=''><BR>\n";
echo "Îò: <input type='text' name='fr' value=''><BR>\n";
echo "Îòíîñíî: <input type='text' name='su' value=''><BR>\n";
echo "<TEXTAREA ROWS='20' cols='30' name='ms'>";
echo "</TEXTAREA><BR>\n";
echo "<INPUT TYPE=submit value='Èçïðàòè ïèñìîòî'>";
} elseif($CMD == "leftframe") {
echo "<STYLE>\n";
echo "A { color:yellow; }\n";
echo "</STYLE>\n";
echo "<BODY BGCOLOR=BLUE><FONT COLOR=WHITE>\n";
echo "<BR><BR>Ìåéë<BR><BR>";
echo "<A HREF='$PHP_SELF?CMD=topframe' TARGET='msg'>ÂÕÎÄßÙÈ</A><BR><BR><BR><BR>";
echo "<A HREF='$PHP_SELF?CMD=compose' TARGET='compwin'>Íàïèøè íîâî ïèñìî</A><BR><BR><BR><BR>";
echo "<A HREF='$PHP_SELF?CMD=logout' TARGET='_top'>Èçëåç</A><BR>";
echo "</BODY>";
} elseif($CMD == "logout") {
setcookie("server");
setcookie("username");
setcookie("password");
setcookie("type");
echo "<CENTER><H1>Èçëèçàíå</H1>\n";
echo "Âèå èçëÿçîõòå îò âàøàòà ïîùåíñêà êóòèÿ. <a href='$PHP_SELF'>Âëåç ïàê</A>";
if($ReturnToPageLink) {
echo "<BR><BR><BR><A HREF='$ReturnToPageLink?returnedfrom=NewMail'>Върни се $ReturnToPageLink</A>";
}
echo "</CENTER>";
} elseif($CMD == "send") {
mail($to, $su, $ms, 'FROM: '.$fr);
echo "<SCRIPT> window.close() </SCRIPT>";
} elseif($CMD == "framed") {
echo "<HTML>\n";
echo "<FRAMESET frameborder='NO' border='0' framespacing='0' COLS='109,*'>\n";
echo "<FRAME SRC='$PHP_SELF?CMD=leftframe' NAME='left' SCROLLING=no>\n";
echo "<FRAME SRC='$PHP_SELF?CMD=topframe' NAME='msg'>\n";
echo "</FRAMESET>";
echo "</HTML>\n";
} else {
echo "<SCRIPT>window.location='$PHP_SELF?CMD=framed' </SCRIPT>";
}
?>Скрипта е превеждан от мен. Нека ако някой иска да го копира някъде да ме помоли.
P.S. Скрипта се нуждае от лекичка доработка и дизайн 😉


