PX : code

NewMail by steven chalker
Download this code


<!-- Note: I did not want to change PHPSESSID. You can use any version of php  -->
<!-- (recommended: PHP 2+) to use this. Right now, edit the configuration and  -->
<!-- you are ready! Demo is at http://www.101h.com/~stevenc/webmail.php/demo   -->

<!-- Feel Free to Edit anything -->

<?php

// Configuration Starts here
$server "my.server.com";
$mytype "IMAP"//enter POP3 if POP Account
$title "Steven's Webmail";

//-------------------------------------------
if($PHPSESSID){ parse_str(base64_decode($PHPSESSID)); }  //IMPORTANT!!!!!!!!!!!!!!!!!!!!!
$javascript_for_select "<script language='javascript'><!--\n";

$javascript_for_select .= "function selectState(state) {\n";

$javascript_for_select .= "for(i=0; i < document.forms[0].elements.length;i++){\n";

$javascript_for_select .= "document.forms[0].elements[i].checked=state;\n";

$javascript_for_select .= "}\n}\n";

$javascript_for_select .= "//--></script>\n";



$select_all "&nbsp;&nbsp;<input type='button' value='Select All' onclick='";

$select_all .= "selectState(true)'>&nbsp;&nbsp;";



$unselect_all "<input type='button' value='Unselect All' onclick='";

$unselect_all .= "selectState(false)'>&nbsp;&nbsp;";

if(
$CMD == "topframe") {
$SID="PHPSESSID=$PHPSESSID";
if(!
$folder){ $folder "INBOX"; }

if(
$type == "POP3") {

$mbox imap_open("{".$session_server.":110/pop3}INBOX.".urldecode($foldery), $sesson_username$session_password);

} elseif(
$type == "IMAP") {

$mbox imap_open("{".$session_server."}".$foldery$session_username$session_password);

}
if(!
$mbox){ echo "<h2>Invalid IMAP/POP3 Server</h2> The IMAP/POP3 Server ".$server." did not connect successfully.<BR><B>".imap_last_error()."</B>";  exit; }

echo 
"<meta HTTP-EQUIV='refresh' CONTENT='1500'>\n";

echo 
"<body BGCOLOR=BLUE><font COLOR=WHITE>\n";

$mcheck imap_check($mbox);

$mnum $mcheck->Nmsgs;

if(
$mnum == "0") {

echo 
"<br>You have no messages in your INBOX.";

} else {

$overview imap_fetch_overview($mbox"1:$mnum"0);

echo 
"<form ACTION='webmail.php?CMD=delete' METHOD=post name=delete>\n";

echo 
"<input TYPE=submit VALUE=Delete>\n";

echo 
$select_all;

echo 
$unselect_all;

echo 
"<table BORDER=0>\n";
$s=sizeof($overview);
echo 
"<tr><td>FROM</td><td>SUBJECT</td><td>DATE</td><td>Delete</td></tr>";

for(
$i=$s-1$i >= 0$i--) {

$val=$overview[$i];

$nb=$val->msgno;

$rawsubject imap_mime_header_decode($val->subject);

$subject $rawsubject[0]->text;

if(
$subject == ''){ $subject "[no subject]"; }

$rawfrom imap_mime_header_decode($val->from);

$from $rawfrom[0]->text;
$header imap_header($mbox,$nb);
if(
$header->Unseen == "U") {
$font "bgcolor=\"black\"";
} else {
$font "ignore=\"true\"";
}
$date=$val->date;
$isfont = ($font == "bgcolor=\"black\"") ? "<!-- yes -->" "<!-- no -->"
echo 
"<tr ".$font."><td>".$isfont."<a HREF='webmail.php?CMD=view&num=$nb&foldery=$folder&PHPSESSID=$PHPSESSID' STYLE='cursor:hand' STYLE='color:white'>";

echo 
"$from</a></td></font><td>".$isfont."<a HREF='webmail.php?CMD=view&num=$nb&foldery=$folder&PHPSESSID=$PHPSESSID' STYLE='color:white'>$subject</a></td></font><td>".$isfont."<a HREF='webmail.php?CMD=view&num=$nb&foldery=$folder&PHPSESSID=$PHPSESSID' STYLE='color:white'>$date</a></td><td><input TYPE='checkbox' NAME='num[]' VALUE=$nb></td></tr></font>";

}

echo 
"</table>\n</body>";

echo 
$javascript_for_select;

}

imap_close($mbox);

} elseif(
$CMD == "source") {
$SID="PHPSESSID=$PHPSESSID";
if(
$type == "POP3") {

$mbox=imap_open("{".$session_server.":110/pop3}".urldecode($foldery),$session_username,$session_password);

} elseif(
$type == 'IMAP') {

$mbox=imap_open("{".$session_server."}".urldecode($foldery),$session_username,$session_password);

}

$structure=imap_fetchstructure($mbox,$num);

echo 
"<pre>";

$rb=imap_fetchbody($mbox,$num,0);
$rb=str_replace("<","&lt;",$rb);
echo 
$rb;

echo 
"\n\n";
$mb=imap_body($mbox,$num);
$mb=str_replace("<","&lt;",$mb);
echo 
$mb;

echo 
"</pre>";

} elseif(
$CMD == "view") {

if(
$type == "POP3") {

$mbox imap_open("{".$session_server.":110/pop3}".urldecode($foldery), $session_username$session_password);

} elseif(
$type == "IMAP") {

$mbox imap_open("{".$session_server."}".urldecode($foldery), $session_username$session_password);

}
$h=imap_headers($mbox);
imap_setflag_full($mbox,imap_uid($mbox,substr($h[$num],5,4)),'\\SEEN',SE_UID);

$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='webmail.php?CMD=topframe&folder=$foldery&PHPSESSID=$PHPSESSID'>Back to Messages</a></td><td><a HREF='javascript:void(window.open(\"webmail.php?CMD=reply&num=$num&foldery=$foldery&PHPSESSID=$PHPSESSID\"))'>Reply to Message</a></td><td><a HREF='webmail.php?CMD=delete&num=$num&foldery=$foldery&PHPSESSID=$PHPSESSID'>Delete This Message</a></td><td><a HREF='javascript:void(window.open(\"webmail.php?CMD=compose&PHPSESSID=$PHPSESSID\"))'>Compose Message</a></td></tr>";
$rawdfrom imap_mime_header_decode($info->fromaddress);
$from $rawdfrom[0]->text;
echo 
"<tr><td>From</td><td>$from</td></tr>";

echo 
"<tr><td>To</td><td>$info->toaddress</td></tr>";

if(
$info->ccaddress){ echo "<tr><td>CC</td><td>$info->ccaddress</td></tr>"; }

if(
$info->bccaddress){ echo "<tr><td>BCC</td><td>$info->bccaddress</td></tr>"; }

echo 
"<tr><td>Date</td><td>$info->Date</td></tr>";
$rawdsubject imap_mime_header_decode($info->Subject);
$subject $rawdsubject[0]->text;
echo 
"<tr><td>Subject</td><td>$subject</td></tr>";

$structure imap_fetchstructure($mbox$num);

$structure=imap_fetchstructure($mbox,$num);

if(isset(
$structure->parts)) {

echo 
"<tr><td>Attachments</td><td>";

while(list(
$key,$val) = each($structure->parts)) {

if(
$key 0) {

if(
$val->ifparameters) {

$attach=$val->parameters;

echo 
"<a href='webmail.php?CMD=Attachview&num=$num&part=$key&foldery=$foldery&PHPSESSID=$PHPSESSID' TARGET=blanke>";

$attachmenttext=$attach[0]->value;

$attachmenttext=str_replace("US-ASCII""HTML/HTM Document"$attachmenttext);

$attachmenttext=str_replace("us-ascii""HTML/HTM Document"$attachmenttext);

echo 
$attachmenttext;

echo 
"</a>,&nbsp;";

} else {

echo 
"<a href='webmail.php?CMD=Attachview&num=$num&part=$key&foldery=$foldery&PHPSESSID=$PHPSESSID' TARGET=blanke>";

echo 
"(unnamed)</a>,&nbsp;";

}

}

}

}

echo 
"</tr>\n</td>";

echo 
"<tr><td>\n";

echo 
"<a HREF='javascript:void(window.open(\"webmail.php?CMD=source&num=$num&foldery=$foldery&PHPSESSID=$PHPSESSID\"));'>Source</a>";

echo 
"</td></tr>\n";

echo 
"</table><br><pre>";

if(isset(
$structure->parts)) {

$body=imap_fetchbody($mbox,$num,1);

} else {

$body=imap_body($mbox,$num);

}
$partone $structure;
$parttwo $partone->parts[0];
if(
$parttwo->encoding == 3) {

$ambody imap_base64($body);

} elseif(
$parttwo->encoding == 4) {

$ambody imap_qprint($body);

} else {

$ambody $body;

}


echo 
$ambody;

echo 
"</pre><br>";

echo 
"<table BORDER=0>";

echo 
"<tr><td><a HREF='webmail.php?CMD=topframe&folder=$foldery&PHPSESSID=$PHPSESSID'>Back to Messages</a></td><td><a HREF='javascript:void(window.open(\"webmail.php?CMD=reply&PHPSESSID=$PHPSESSID&num=$num&foldery=$foldery\"))'>Reply to Message</a></td><td><a HREF='webmail.php?CMD=delete&num=$num&foldery=$foldery&PHPSESSID=$PHPSESSID'>Delete This Message</a></td><td><a HREF='javascript:void(window.open(\"webmail.php?CMD=compose&PHPSESSID=$PHPSESSID\"))'>Compose Message</a></td></tr>";

echo 
"</table>";

imap_close($mbox);

} elseif(
$CMD == "reply") {

if(
$type == "POP3") {

$mbox imap_open("{".$session_server.":110/pop3}".urldecode($foldery), $session_username$session_password);

} elseif(
$type == "IMAP") {

$mbox imap_open("{".$session_server."}".urldecode($foldery), $session_username$session_password);

}

$replytext=imap_header($mbox$num);

$to=$replytext->from[0];

echo 
"<body BGCOLOR=BLUE><font COLOR=WHITE>\n";

echo 
"<form ACTION='webmail.php?CMD=send&PHPSESSID=$PHPSESSID' enctype='multipart/form-data' METHOD='post'>\n";
echo 
"<input type='hidden' name='MAX_FILE_SIZE' value='248000012'>\n";
echo 
"<h1>Reply to this Message</h1>";

echo 
"To: <input type='text' name='to' value='$to->mailbox@$to->host'><br>\n";

echo 
"From: <input type='text' name='fr' value='$replytext->toaddress'><br>\n";
echo 
"CC: <input type='text' name=cc value=''><br>\n";
echo 
"BCC: <input type='text' name=bcc value='><br>\n";
$subj $replytext->Subject;

$subj str_replace("Re:"""$subj);

echo 
"Subject: <input type='text' name='su' value='Re: $subj'><br>\n";
echo 
"<textarea ROWS='20' cols='45' name='ms'>";

$structure=imap_fetchstructure($mbox,$num);

if(isset(
$structure->parts)) {

$body imap_fetchbody($mbox,$num,1);

} else {

$body imap_body($mbox,$num);

}

$body str_replace("\n""\n&gt; "$body);

$body str_replace("<""&lt;"$body);

$body str_replace(">""&gt;"$body);

echo 
"\n\n\nOn $replytext->Date, $replytext->fromaddress wrote:\n";

echo 
"> ".$body;

echo 
"<\textarea><br>\n";

echo 
"<input TYPE=submit value='Send Message'>";

imap_close($mbox);

} elseif(
$CMD == "compose") {
$generated="";
$generated=$session_username."@".$session_server;
$generated=str_replace("mail.","",$generated);
$generated=str_replace("pop.","",$generated);
$generated=str_replace("pop3.","",$generated);
$generated=str_replace("imap.","",$generated);
echo 
"<form ACTION='webmail.php?CMD=send&PHPSESSID=$PHPSESSID' enctype='multipart/form-data' METHOD=post>\n";
echo 
"<input type='hidden' name='MAX_FILE_SIZE' VALUE='2480000021'>\n";
echo 
"<body BGCOLOR='blue'><font COLOR='white'>\n";

echo 
"<h1>Compose a Message</h1>\n";

echo 
"To: <input type='text' name='to' value=''><br>\n";

echo 
"From: <input type='text' name=fr value='$generated'><br>\n";
echo 
"CC: <input type='text' name=cc value=''><br>\n";
echo 
"BCC: <input type='text' name=bcc value=''><BR>\n";
echo 
"Subject: <input type=text name=su value=''><br>\n";
echo 
"<textarea rows='20' cols=55 name=ms><\textarea><br>\n";

echo 
"<input type='submit' value='Send'></form>\n";

} elseif(
$CMD == "delete") {

if(
$type == "POP3") {

$mbox=imap_open("{".$session_server.":110/pop3}".urldecode($foldery), $session_username$session_password);

} elseif(
$type == "IMAP") {

$mbox=imap_open("{".$session_server."}".urldecode($foldery), $session_username$session_password);

}

for(
$i=0$i sizeof($num); $i++) {

imap_delete($mbox,$num[$i]);

}

imap_expunge($mbox);

echo 
"<script> window.location='webmail.php?CMD=topframe&PHPSESSID=$PHPSESSID'; </SCRIPT>";

imap_close($mbox);

} elseif(
$CMD == "Attachview") {

if(
$type == "POP3") {

$mbox=imap_open("{".$session_server.":110/pop3}".urldecode($foldery),$session_username,$session_password);

} elseif(
$type == "IMAP") {

$mbox=imap_open("{".$session_server."}".urldecode($foldery),$session_username,$session_password);

}

$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 == "folders") {

if(
$type == "POP3") {

$mbox=imap_open("{".$session_server.":110/pop3}"$session_username$session_password);

$folderr=imap_listmailbox($mbox,"{".$session_server.":110/pop3}","*");

$am="{".$session_server.":110/pop3}";

} elseif(
$type == "IMAP") {

$mbox=imap_open("{".$session_server."}",$session_username,$session_password);

$am="{".$session_server."}";

$folderr=imap_listmailbox($mbox,"{".$session_server."}","*");

}

echo 
"<body BGCOLOR=blue><font COLOR=white>\n";

echo 
"<form ACTION='webmail.php?CMD=folders_do&PHPSESSID=$PHPSESSID' METHOD=post>\n";

echo 
"Folders<br><br>";

echo 
"Create New Mailbox: <input type='text' name='newbox'> <input type=submit value=Make>";

echo 
"<br><br>";

echo 
"Rename Mailbox: <select name='renameFolder'>\n";

while(list(
$useless_key,$helped_val) = each($folderr)) {

$helped_val str_replace($am,"",$helped_val);

echo 
"<option VALUE='INBOX.".urlencode($helped_val)."'>$helped_val</option>\n";

}

echo 
"</select>&nbsp;";

echo 
"<input TYPE='text' name='newfolder'>&nbsp;";

echo 
"<input TYPE='submit' VALUE='Rename'><br><br>";

echo 
"Delete Mailbox <select NAME='delefolder'>\n";

for(
$i=0$i count($folderr); $i++) {

$folderr[$i] = str_replace($am,"",$folderr[$i]);

echo 
"<option VALUE='".$folder[$i]."'>".$folderr[$i]."</option>\n";

}

echo 
"</select>&nbsp;";

echo 
"<input TYPE=submit VALUE='Delete Folder'>\n";

echo 
"</form>";

} elseif(
$CMD == "folders_do") {

if(
$type == "IMAP") { //go opposite

$mbox=imap_open("{".$session_server."}"$session_username,$session_password);

$ish="{".$session_server."}";

} elseif(
$type == "POP3") {

$mbox=imap_open("{".$session_server.":110/pop3}",$session_username$session_password);

$ish="{".$session_server.":110/pop3}";

}

if(
$newbox) {

imap_createmailbox($mbox,imap_utf7_encode($ish."INBOX.$newbox"));

}

if(
$newfolder) {

imap_renamemailbox($mbox,$ish.$renameFolder,$ish."INBOX.".$newfolder);

}

if(
$delefolder) {

imap_deletemailbox($mbox,$ish."INBOX.".$delefolder);

}

echo 
"<script> window.location='webmail.php?CMD=folders&PHPSESSID=$PHPSESSID'; </SCRIPT>";

} elseif(
$CMD == "leftframe") {

if(
$type == "POP3") {

$mbox=imap_open("{".$session_server.":110/pop3}"$session_username$session_password);

} elseif(
$type == "IMAP") {

$mbox=imap_open("{".$session_server."}",$session_username,$session_password);

}
if(!
$mbox){  exit; }

echo 
"<meta HTTP-EQUIV='refresh' CONTENT='300'>\n";

echo 
"<style>\n";

echo 
"A { color:yellow; }\n";

echo 
"</STYLE>\n";

echo 
"<form NAME=thising>\n";

echo 
"<body BGCOLOR=BLUE><font COLOR=WHITE>\n";

echo 
"<select NAME='selectfolder' ONCHANGE='window.parent.msg.location=document.thising.selectfolder.options[document.thising.selectfolder.selectedIndex].value'>\n";

if(
$type == "POP3") {

$folder imap_listmailbox($mbox,"{".$server.":110/pop3}","*");

} elseif(
$type == "IMAP") {

$folder imap_listmailbox($mbox,"{".$server."}","*");

}

while(list(
$key,$val) = each($folder)) {

if(
$type == "POP3") {

$status imap_status($mbox,"{".$server.":110/pop3}INBOX",SA_ALL);

$val str_replace("{".$server.":110/pop3}"""$val);

} else {

$status imap_status($mbox,"{".$server."}INBOX",SA_ALL);

$val str_replace("{".$server."}"""$val);

}
echo 
"<option VALUE='webmail.php?CMD=topframe&PHPSESSID=$PHPSESSID&folder=".urlencode($val)."'>$val</option>\n";
}
echo 
"</select>";
echo 
"<br><br>NewMail 0.7<br><br>";
echo 
"<a HREF='webmail.php?CMD=topframe&PHPSESSID=$PHPSESSID' TARGET='msg'>INBOX</a><br><br><br><br>";
echo 
"<a HREF='webmail.php?CMD=compose&PHPSESSID=$PHPSESSID' TARGET='compwin'>Compose</a><br><br><br><br>";
echo 
"<a HREF='webmail.php?CMD=logout' TARGET='_top'>Log Out</a><br><br>";
echo 
"<a HREF='webmail.php?CMD=folders&PHPSESSID=$PHPSESSID' TARGET='msg'>Folders</a><br><br>";
echo 
"</body>";
if(
$status->unseen) {
echo 
"<!-- $status->unseen messages(unseen) -->";
}
} elseif(
$CMD == "logout") {
echo 
"<center><h1>Log Out</h1>\n";
echo 
"You have been logged out. <a href='webmail.php'>Re-Login</a>";
if(
$ReturnToPageLink) {
echo 
"<br><br><br><a HREF='$ReturnToPageLink?returnedfrom=NewMail'>Return to $ReturnToPageLink</a>";
}
echo 
"</center>";
} elseif(
$CMD == "send") {
$h="From: $fr\n";
if(
$cc$h.="CC: $cc\n";
if(
$bcc$h.="BCC: $bcc\n";
mail($to,$su,$ms,$h);
echo 
"Mail is Sent.<br>";
echo 
"<a HREF='javascript:with(window) close()'>Close</a>\n";
} elseif(
$CMD == "framed") {
echo 
"<html>\n";
echo 
"<title>$title</title>";
echo 
"<frameset frameborder=NO border=0 framespacing=0 cols='109,*'>\n";
echo 
"<frame src='webmail.php?CMD=leftframe&PHPSESSID=$PHPSESSID' NAME='left' ";
echo 
"scrolling='no'>\n";
echo 
"<frame src='webmail.php?CMD=topframe&PHPSESSID=$PHPSESSID' NAME='msg'>\n";
echo 
"</frameset>\n</html>";
} elseif(
$CMD == "cookie") {
$LOGIN base64_encode("session_server=$host&session_username=$user&session_password=$pass&type=$opt");
echo 
"<SCRIPT> window.location='$PHP_SELF?CMD=framed&PHPSESSID=".$LOGIN."';";
echo 
" </SCRIPT>";
setcookie("PHPSESSID",$LOGIN);
} elseif(
$CMD == "GetCode") {
echo 
"<pre>";
echo 
"&lt;html&gt;\n";
echo 
"&lt;form action='webmail.php' method='post'>\n";
echo 
"&lt;center>&lt;h1>Mail Check - Your Name Here &lt;/h1>&lt;/center>\n";
echo 
"Username: &lt;input type='text' name='user'>&lt;BR>\n";
echo 
"Password: &lt;input type='password' name=pass>&lt;BR>\n";
echo 
"Server: Stored&lt;BR>\n";
echo 
"&lt;input type='hidden' name='host' value='your.server.here'>\n";
echo 
"&lt;input type='hidden' name='opt' value='IMAP'>&lt;!-- for POP3, just enter POP3 -->\n";
echo 
"&lt;input type=submit value='Login'>\n&lt;/form>\n";
echo 
"</pre><br><br>";
echo 
"<a HREF='webmail.php'>Return</a>";
} else {
echo 
"<form ACTION='webmail.php?CMD=cookie' METHOD='post'>\n";
echo 
"<center><h1>Mail Checking</h1>\n";
echo 
"Username: <input TYPE='text' NAME='user'><br>\n";
echo 
"Password: <input TYPE='password' NAME='pass'><br>\n";
echo 
"<input type='hidden' name='host' value='$server'>\n";
echo 
"<input type='hidden' name='opt' value='$mytype'>\n";
echo 
"<input type='submit' value='Log in'>\n</form><br>\n";

}

?>

Comments or questions?
PX is running PHP 5.2.17
Thanks to Miranda Productions for hosting and bandwidth.
Use of any code from PX is at your own risk.