圖 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