Z Wikiknih
Tento návod se týká především pokročilých, kteří již svůj ArGoSoft Mail server mají již nainstalovaný a rádi by vytvořili nějakou lepší administraci - některým uživatelům především vadí Google reklama, jež je vložená na originální administraci a její omezená nastavitelnost. (Je napevno v programu a nejde tak upravovat nic jiného než šablony ve složce webtemplates)
V tomto návodu si ukážeme vytvoření PHP aplikace, jež zvládne správu emailového serveru - zejména jinde nepopsanou správu uživatelských účtů a schránek. (Čtení emailů je popsáno v jiné kapitole)
Tento skript umožňuje správu emailových účtů v programu ArGoSoft Mail server. Jedná se o open source, takže nemusíte váhat ho přidat do své administrace.
Podstatou je adresářová struktura Mail serveru:
Kde slovo uživatel je nahrazeno přihlašovacím jménem uživatele a v souboru userdata jsou jeho nastavení.
[editovat] Příklad souboru userdata.rec:
__VER__1.5.0.8
aGVzbG8= (heslo zašifrované pomocí base64)
Real name
Forward addres
Return addres
0
Finger Information
Pro jednoduchost se ale vfgsd administraci soustředíme pouze na heslo a skutečné jméno.
 |
<html><head><title>ArGoSoft Mail Server - administrace</title></head><body>
<div align="center"><center><h3 style="color: #FF0000">
<?
// Složka kam jste nainstalovali ArGoSoft Mail Server
$umisteniserveru="C:\Program Files\Mail Server";
if($akce=="novy"):
// Tvorba uživatele
if($login=="" or $heslo==""):
echo "Musíte vyplnit přihlašovací jméno a heslo!";
else:
@mkdir($umisteniserveru."\\".$login);
// Soubor userdata.rec
$soubor= "__VER__1.5.0.8\n";
$soubor.=base64_encode($heslo)."\n";
$soubor.=$jmeno."\n";
$soubor.="\n\n0\n\n\n\n";
$file=fopen($umisteniserveru."\\".$login."\\userdata.rec","w");
fwrite($file,$soubor);
fclose($file);
// Otestování funkčnosti
$pokus=@IMAP_Open("{localhost/pop3}INBOX",$login,$heslo);
if($pokus){echo "Uživatel byl úspěšně vytvořen.";}
else{echo "Uživatel vytvořen, ale nelze se na něj připojit!";}
endif;
elseif($smazat!=""):
// Smazání uživatele
$dir=opendir($umisteniserveru."\\".$smazat);
while ($file = readdir($dir)){
if($file != '..' && $file !='.'){
if(is_dir($umisteniserveru."\\".$smazat."\\".$file)){
rmdir($umisteniserveru."\\".$smazat."\\".$file)or print("Nelze smazat podsložku $file !<br>");
}else{
unlink($umisteniserveru."\\".$smazat."\\".$file)or print("Nelze smazat soubor $file !<br>");
}
}
}
@rmdir($umisteniserveru."\\".$smazat)or print("Nelze smazat složku samou!<br>Špatně nastavená oprávnění!<br>");
echo 'Mazání dokončeno.';
endif;
// Výpis uživatelů
echo "</h3>";
$dir=opendir($umisteniserveru);
echo "<b>Výpis uživatelů:</b><br>";
while ($file = readdir($dir)){
// Musí se jednat o podsložku
if($file != '..' && $file !='.' && !strpos($file,".")){
// Ve složce musí být umístěn soubor userdata.rec
if(file_exists($umisteniserveru."\\".$file."\\userdata.rec")){
echo '<b>'.$file.'</b> <a href="uzivatele.php?smazat='.$file.'">Smazat</a><br>';
}
}
}
echo "<br><br>";
?>
<form method="POST" action="uzivatele.php?akce=novy">
<table border="1" width="281">
<tr><td>Přihlašovací jméno:</td><td><input type="text" name="login" size="21"></td></tr>
<tr><td>Skutečné jméno:</td><td><input type="text" name="jmeno" size="21"></td></tr>
<tr><td>Heslo:</td><td><input type="password" name="heslo" size="21"></td></tr>
<tr><td colspan="2" align="right"><input type="submit" value="Vytvořit"></td></tr>
</table></center></div></form>
</body></html>
|
Když následně otevřeme soubor uzivatele.php, ukáže se nám jednoduchá administrace pomocí níž můžeme vytvářet a mazat emailové schránky z ArGoSoft Mail serveru bežícího na stejném počítači jako skript, jinak by se musel skript upravit.
Nevýhodou této administrace je, že se k ní dostane prakticky kdokoli v místní síti. (Pokud by byl server s trvalou IP adresou a nejlépe i s doménou, tam dokonce kdokoli z internetu.) Toto můžeme zabezpečit buď pomocí rozšíření o složité přihlašování, nebo jednoduše zpřístupněním pouze z lokálního počítače. (tj. Počítače na nemž jede webový server.) To lze udělat přidáním následujícího souboru .htaccess do složky s administrací:
Options FollowSymLinks Indexes
AllowOverride None
Order deny,allow
Allow from 127.0.0.1
Deny from all