<?php require "www2-funcs.php"; require "www2-board.php"; login_init(); bbs_session_modify_user_mode(BBS_MODE_SMAIL); assert_login(); mailbox_header("写邮件"); if (!bbs_can_send_mail(isset($_GET["file"]) ? 1 : 0)) { html_error_quit("您不能发送信件"); } if (isset($_GET["board"])) { $board = $_GET["board"]; } if (isset($board)) { $brdarr = array(); $brdnum = bbs_getboard($board, $brdarr); if ($brdnum == 0) { html_error_quit("错误的讨论区"); } $usernum = $currentuser["index"]; if (bbs_checkreadperm($usernum, $brdnum) == 0) { html_error_quit("错误的讨论区"); } $id = intval(@$_GET["id"]); if ($id <= 0) { html_error_quit("错误的文章"); } $articles = array(); $num = bbs_get_records_from_id($brdarr["NAME"], $id, $dir_modes["NORMAL"], $articles); if ($num <= 0) {
function atomic_mailpost() { global $currentuser; atomic_mail_header(); if (!bbs_can_send_mail()) { atomic_error("您不能发送信件"); } $num = isset($_GET["num"]) ? @intval($_GET["num"]) : 0; $mail_fullpath = bbs_setmailfile($currentuser["userid"], ".DIR"); if ($num > 0) { $articles = array(); if (bbs_get_records_from_num($mail_fullpath, $num - 1, $articles)) { $title = $articles[0]["TITLE"]; $receiver = $articles[0]["OWNER"]; $shortfilename = $articles[0]["FILENAME"]; $filename = bbs_setmailfile($currentuser["userid"], $shortfilename); } else { atomic_error("错误的参数"); } } if (isset($_GET["post"])) { $title = atomic_get_input(trim(@$_POST["title"])); if (!$title) { $title = '无主题'; } $content = atomic_get_input(@$_POST["text"]); $sig = $currentuser["signature"]; $backup = bbs_is_save2sent() != 0; if ($num > 0) { $ret = bbs_postmail($mail_fullpath, $shortfilename, $num - 1, $title, $content, $sig, $backup); } else { $incept = trim(@$_POST['userid']); if (!$incept) { atomic_error("请输入收件人ID"); } $lookupuser = array(); if (!bbs_getuser($incept, $lookupuser)) { atomic_error("错误的收件人ID"); } $incept = $lookupuser['userid']; if (!strcasecmp($incept, 'guest')) { atomic_error("不能发信给guest"); } if (!bbs_sufficient_score_to_sendmail($incept)) { atomic_error("积分不足,不能发信给" . $incept); } $ret = bbs_postmail($incept, $title, $content, $sig, $backup); } if ($ret < 0) { switch ($ret) { case -1: case -2: atomic_error("无法创建文件"); break; case -3: atomic_error($incept . " 拒收您的邮件"); break; case -4: atomic_error($incept . " 的信箱已满"); break; case -5: atomic_error("两次发文/信间隔过密,请休息几秒再试!"); break; case -6: atomic_error("添加邮件列表出错"); break; case -7: atomic_error("邮件发送成功,但未能保存到发件箱"); break; case -8: atomic_error("找不到所回复的原信。"); break; case -100: atomic_error("错误的收件人ID"); break; default: atomic_error("系统错误,请联系管理员"); } } if ($num > 0) { $url = "?act=mailread&num=" . $num; echo "发送成功!本页面将在3秒后自动返回<a href='{$url}'>原信件</a><meta http-equiv='refresh' content='3; url=" . $url . "'/>"; } else { $url = "?act=mail"; echo "发送成功!本页面将在3秒后自动返回<a href='{$url}'>信件列表</a><meta http-equiv='refresh' content='3; url=" . $url . "'/>"; } atomic_footer(); return; } if ($num > 0) { if (!strncmp($title, "Re: ", 4)) { $nowtitle = $title; } else { $nowtitle = "Re: " . $title; } } else { $nowtitle = ""; } $html = "<form action='?act=mailpost&num=" . $num . "&post=1' method='post'>"; $html .= '标题: <input type="text" name="title" size="40" maxlength="100" value="' . ($nowtitle ? htmlspecialchars($nowtitle, ENT_QUOTES) . " " : "") . '"/><br/>'; if ($num > 0) { $html .= "收件人: " . $receiver . "<br/>"; } else { $html .= '收件人: <input type="text" name="userid"/><br/>'; } $html .= '<textarea name="text" rows="20" cols="80" wrap="physical">'; if ($num > 0) { $html .= "\n\n【 在 " . $receiver . " 的来信中提到: 】\n"; $fp = fopen($filename, "r"); if ($fp) { $lines = 0; for ($i = 0; $i < 4; $i++) { if (($buf = fgets($fp, 500)) == FALSE) { break; } } while (1) { if (($buf = fgets($fp, 500)) == FALSE) { break; } if (strncmp($buf, ": 【", 4) == 0) { continue; } if (strncmp($buf, ": : ", 4) == 0) { continue; } if (strncmp($buf, "--\n", 3) == 0) { break; } if (strncmp($buf, '\\n', 1) == 0) { continue; } if (++$lines > 10) { $html .= ": ...................\n"; break; } $html .= ": " . htmlspecialchars($buf); } fclose($fp); } } $html .= '</textarea><br/><input type="submit" value="发送" /></form>'; echo $html; atomic_footer(); }
<?php require "www2-funcs.php"; login_init(); assert_login(); mailbox_header("发送信件"); $mailfile = @$_POST["file"]; $dirfile = @$_POST["dir"]; if (strstr($dirfile, '..')) { die; } $maildir = bbs_setmailfile($currentuser["userid"], $dirfile); $num = @intval($_POST["num"]); if (!bbs_can_send_mail($mailfile ? 1 : 0)) { html_error_quit("您不能发送信件"); } if ($mailfile == "") { $incept = trim(@$_POST['userid']); if (!$incept) { html_error_quit("请输入收件人ID"); } $lookupuser = array(); if (!bbs_getuser($incept, $lookupuser)) { html_error_quit("错误的收件人ID"); } $incept = $lookupuser['userid']; if (!strcasecmp($incept, 'guest')) { html_error_quit("不能发信给guest"); } if (!bbs_sufficient_score_to_sendmail($incept)) { html_error_quit("您积分不足,不能给 " . $incept . " 发信!");
/** * function canSend check current user has send right * * @return boolean true|false * @static * @access public */ public static function canSend() { return bbs_can_send_mail() > 0; }