$mail_fullpath = bbs_setmailfile($currentuser["userid"], $mail_path); $mail_num = bbs_getmailnum2($mail_fullpath); if ($mail_num < 0 || $mail_num > 30000) { html_error_quit("Too many mails!"); } $num = 19; if ($start > $mail_num - 19) { $start = $mail_num - 19; } if ($start < 0) { $start = 0; if ($num > $mail_num) { $num = $mail_num; } } $maildata = bbs_getmails($mail_fullpath, $start, $num); if ($maildata == FALSE) { html_error_quit("读取邮件数据失败!"); } //system mailboxs $mail_box = array(".DIR", ".SENT", ".DELETED"); $mail_boxtitle = array("收件箱", "发件箱", "垃圾箱"); //$mail_boxnums = array(bbs_getmailnum2(bbs_setmailfile($currentuser["userid"],".DIR")),bbs_getmailnum2(bbs_setmailfile($currentuser["userid"],".SENT")),bbs_getmailnum2(bbs_setmailfile($currentuser["userid"],".DELETED"))); //custom mailboxs $mail_cusbox = bbs_loadmaillist($currentuser["userid"]); //$totle_mails = $mail_boxnums[0]+$mail_boxnums[1]+$mail_boxnums[2]; $i = 2; if ($mail_cusbox != -1) { foreach ($mail_cusbox as $mailbox) { $i++; $mail_box[$i] = $mailbox["pathname"];
function atomic_mail() { global $currentuser; atomic_mail_header(); $mail_fullpath = bbs_setmailfile($currentuser["userid"], ".DIR"); $mail_num = bbs_getmailnum2($mail_fullpath); if ($mail_num <= 0 || $mail_num > 30000) { atomic_error("读取邮件数据失败!"); } $start = isset($_GET["start"]) ? @intval($_GET["start"]) : 999999; $num = ARTCNT; if ($start > $mail_num - ARTCNT + 1) { $start = $mail_num - ARTCNT + 1; } if ($start <= 0) { $start = 1; if ($num > $mail_num) { $num = $mail_num; } } $maildata = bbs_getmails($mail_fullpath, $start - 1, $num); if ($maildata == FALSE) { atomic_error("读取邮件数据失败!"); } $html = '<form action="?" method="get"><input type="hidden" name="act" value="mail"/>'; $html .= '<a href="?act=mailpost">写信</a> '; if ($start > 1) { $i = $start - ARTCNT; if ($i < 1) { $i = 1; } $html .= '<a href="?act=mail&start=1">第一页</a> '; $html .= '<a href="?act=mail&start=' . $i . '">上一页</a> '; } else { $html .= '第一页 上一页 '; } if ($start <= $mail_num - ARTCNT) { $i = $start + ARTCNT; if ($i > $mail_num) { $i = $mail_num; } $html .= '<a href="?act=mail&start=' . $i . '">下一页</a> '; $html .= '<a href="?act=mail">最后一页</a> '; } else { $html .= '下一页 最后一页 '; } $html .= '<input type="submit" value="跳转到"/> 第 <input type="text" name="start" size="3" /> 篇</form>'; $html .= '<pre> 编号 发信者 日 期 标 题<br/>'; for ($i = 0; $i < count($maildata); $i++) { $article = $maildata[$i]; $title = $article["TITLE"]; if (strncmp($title, "Re: ", 4) != 0) { $title = "★ " . $title; } $html .= sprintf("%5d ", $start + $i); $html .= $maildata[$i]["FLAGS"]; $html .= sprintf(" %-12.12s ", $article["OWNER"]); $html .= strftime("%b %e ", $article["POSTTIME"]); $html .= $maildata[$i]["ATTACHPOS"] > 0 ? "@" : " "; $html .= "<a href='?act=mailread&num=" . ($start + $i) . "'>" . htmlspecialchars($title) . " </a> (" . sizestring($maildata[$i]['EFFSIZE']) . ")<br/>"; } $html .= "</pre>"; echo $html; atomic_footer(); }
<?php require "www2-funcs.php"; login_init(); page_header($currentuser["userid"] . " 的信箱"); assert_login(); $mail_fullpath = bbs_setmailfile($currentuser["userid"], ".DIR"); $mail_num = bbs_getmailnum2($mail_fullpath); if ($mail_num < 0 || $mail_num > 30000) { html_error_quit("Too many mails!"); } $maildata = bbs_getmails($mail_fullpath, 0, $mail_num); if ($maildata == FALSE) { html_error_quit("读取邮件数据失败!"); } mailbox_header("新信件列表"); ?> <table class="main wide adj"> <caption>新信件列表</caption> <col class="center"/><col class="center"/><col class="center"/><col class="center"/><col/> <tbody><tr><th>序号</th><th>状态</th><th>发信人</th><th>日期</th><th>信件标题</th> <?php $newtotal = 0; $start = 0; for ($i = 0; $i < $mail_num; $i++) { if ($maildata[$i]["FLAGS"][0] == 'N') { $newtotal++; ?> <tr><td><?php echo $start + $i + 1; ?>
public function getRecord($start, $num) { $start = $this->getMailNum() - $start + 1 - $num; $arr = bbs_getmails($this->getFullPath(), $start, $num); if (!$arr) { throw new MailDataNullException(); } else { if ($arr == -1) { return array(); } } foreach ($arr as $k => &$v) { $v = new Mail($v, $this, $start + $k); } return array_reverse($arr); }