图 1.
下面是引用myksm于2005-01-25 12:46发表的 :
https://webmail.cc.ncu.e...ex_2.html 可以侦测信箱所剩容量 和是否暂时更改quota
https://web2.cc.ntu.edu.t...123/p1.php 个人帐号登入:检查个人帐号状态及磁碟空间使用容量
.......
用php还有bash shell script写了一个类似上面第一个网址的功能
将下面的复制储存成.php档
上传至支援php的网页空间
不过帐号密码的认证是用imap_open()来做,请依sever的情况更改
请参考
http://www.php5.idv.tw/modules.ph...=show&shid=873如果php没支援imap....那看有谁会用其他方法认证的...我不会
复制程式
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "[url]http://www.w3.org/TR/html4/loose.dtd[/url]">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>login</title>
<style type="text/css">
<!--
.style1 {color: #FF0000}
.style3 {color: #0000FF}
.style4 {color: #009900}
-->
</style>
</head>
<body>
<?
if ((isset($_POST["id"])) && (isset($_POST["pw"]))) {
if(@$link=imap_open("{localhost:995/pop3/ssl/novalidate-cert}",$_POST["id"],$_POST["pw"],OP_HALFOPEN)){
imap_close($link);
$arr_id_txt = file("list");
for( $i = 0 ; $i < count($arr_id_txt) ; $i++ ){
$id_txt = $id_txt . $arr_id_txt[$i] . "\n";
}
if(ereg($_POST["id"],$id_txt)){
$arr_id_tmp_txt = file("id_tmp");
for( $i = 0 ; $i < count($arr_id_tmp_txt) ; $i++ ){
$id_tmp_txt = $id_tmp_txt . $arr_id_tmp_txt[$i] . "\n";
}
if(!ereg($_POST["id"],$id_tmp_txt)){
if($file=fopen("id_tmp","a")){
$id = $_POST["id"] . "\n";
fputs($file,$id);
fclose($file);
echo "成功!" . $_POST["id"] . "已加入申请暂时解除限制的名单";
}
}else{
echo "失败,您已经申请过暂时解除限制";
}
}else{
echo "失败,您尚未超过容量使用上限";
}
}else{
echo "失败,帐号或密码错误";
}
}
#echo "<br>" . imap_last_error() ;
?>
<form name="form1" method="post" action="<?php echo $PHP_SELF; ?>">
<p>
帐号:
<input name="id" type="text" id="id">
</p>
<p>
密码:
<input name="pw" type="password" id="pw">
</p>
<p>
<input type="submit" name="Submit" value="送出">
</p>
</form>
<table border="0">
<tr align="left" valign="top">
<td><p class="style1">
以下使用者为超过存放空间限制的名单:<br>
(名单每日XX时更新)<br>
(请申请暂时解除限制,您的需求将于隔天XX时生效)
<?
$arr_id = file("list");
for( $i = 0 ; $i < count($arr_id) ; $i++ ){
echo "<br>" . $arr_id[$i];
}
?>
</p>
</td>
<td><span class="style3">
以下使用者为申请暂时解除限制的名单:<br>
(隔天XX时生效)
<?
$arr_id_tmp = file("id_tmp");
for( $i = 0 ; $i < count($arr_id_tmp) ; $i++ ){
echo "<br>" . $arr_id_tmp[$i];
}
?>
</span></td>
<td><span class="style4">
以下使用者为申请暂时解除限制的名单:<br>
(今天XX时失效)
<?
$arr_id_tmp2 = file("id_tmp2");
for( $i = 0 ; $i < count($arr_id_tmp2) ; $i++ ){
echo "<br>" . $arr_id_tmp2[$i];
}
?>
</span></td>
</tr>
</table>
</body>
</html>
建立三个档list、id_tmp、id_tmp2
建一个使用者usera,quota设定为正常使用容量
建一个使用者userb,quota设定为有较大使用容量
下面代码复制后储存跟上面三个档放在一起
加入排程工作crontab定期执行
对了...这几个档要跟上面那个php档放在一起
list要有可以给apache执行者可读的权限
id_tmp、id_tmp2要有可以给apache执行者可读写的权限
复制程式
#!/bin/bash
#找出超出限制的名单
repquota -a | grep -e + | cut -d " " -f 1 > list
#id_tmp2储存今日即将过期名单
id2=`cat id_tmp2`
for k in $id2
do
#回复使用者正常使用容量
#usera为正常使用容量的使用者范本
edquota -p usera $k
done
cat /dev/null > id_tmp2
#增加申请暂时解除限制的使用者容量
#id_tmp储存申请名单
id=`cat id_tmp`
for i in $id
do
#userb为有较大使用容量的使用者范本
edquota -p userb $i
echo $i >> id_tmp2
done
cat /dev/null > id_tmp