225 lines
6.7 KiB
PHP
225 lines
6.7 KiB
PHP
<?php
|
|
|
|
# vers. 20120625-01
|
|
# CREATE TABLE FWDUSER (email varchar(100) primary key, fwdaddr varchar(100), domain varchar(100));
|
|
|
|
include_once("./include/cfg-petar.php");
|
|
include_once("./include/cfg-mail.php");
|
|
include_once("./include/layout.php");
|
|
include_once("./include/users.php");
|
|
include_once("./include/db.php");
|
|
|
|
?>
|
|
|
|
<script data-require="jquery" data-semver="2.1.1" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
|
|
<script src="./duplicate_fill.js"></script>
|
|
|
|
<!-- ------------------------------------------------------------------------ -->
|
|
|
|
<?php require 'include/inc-header.php';?>
|
|
|
|
<!-- ------------------------------------------------------------------------ -->
|
|
|
|
<?php require 'include/inc-top.php';?>
|
|
|
|
<!-- ------------------------------------------------------------------------ -->
|
|
|
|
|
|
<tr bgcolor=navy align=center>
|
|
<td colspan=4><font color=yellow><b>Email</b></font></td>
|
|
|
|
<?php
|
|
|
|
echo "<tr align=left valign=top>".
|
|
"<td colspan=4>";
|
|
|
|
|
|
$_REQUEST["step"] = $_REQUEST["step"] ?? '';
|
|
$_REQUEST["fwdaddr1"] = $_REQUEST["fwdaddr1"] ?? '';
|
|
$_REQUEST["fwdaddr2"] = $_REQUEST["fwdaddr2"] ?? '';
|
|
$_REQUEST["email"] = $_REQUEST["email"] ?? '';
|
|
|
|
if (!$_REQUEST["step"]){
|
|
|
|
$sql="SELECT domain FROM FWDUSER group by domain order by domain";
|
|
$result=$dbh->query($sql);
|
|
$rows=$result->fetchAll();
|
|
|
|
echo "<b>email in nuovo dominio</b>".
|
|
"<FORM NAME=ndomain ACTION=".$_SERVER["PHP_SELF"]." METHOD=POST>".
|
|
"[ <a href='javascript:document.ndomain.submit();'>Inizializza il dominio</a> ]: ".
|
|
"<INPUT TYPE=TEXT NAME=domain SIZE=40 MAXLENGTH=40>".
|
|
" ".
|
|
"<INPUT TYPE=HIDDEN name=step value=1></FORM>";
|
|
|
|
if ( count($rows) > 0 ) {
|
|
|
|
echo "<b>email in dominio esistente</b>".
|
|
"<FORM NAME=edomain ACTION=".$_SERVER["PHP_SELF"]." METHOD=POST>".
|
|
"[ <a href='javascript:document.edomain.submit();'>Crea nuova email nel seguente dominio</a> ]:".
|
|
"<select name=domain>";
|
|
|
|
foreach($rows as $row){
|
|
echo "<option value=".$row["domain"].">".$row["domain"]."</option>";
|
|
}
|
|
|
|
echo "</select>".
|
|
" ".
|
|
"<INPUT TYPE=HIDDEN name=step value=1></FORM>".
|
|
"<p>";
|
|
}
|
|
|
|
}
|
|
|
|
if ($_REQUEST["step"] == "1"){
|
|
|
|
if ($_REQUEST["domain"]){
|
|
|
|
$_REQUEST["domain"] = preg_replace("/[^A-Za-z0-9.-]/", '', $_REQUEST["domain"]);
|
|
|
|
echo "Ultima email del dominio: <strong>".$_REQUEST["domain"]."</strong>".
|
|
"<br><FORM NAME=creamail ACTION=".$_SERVER["PHP_SELF"]." METHOD=POST>";
|
|
|
|
echo "<tr bgcolor=navy>".
|
|
"<td><font color=yellow>nr".
|
|
"<td><font color=yellow>email".
|
|
"<td><font color=yellow>fwd".
|
|
"<td><font color=yellow>domain";
|
|
|
|
# Contiamo quante email per prenderne poi le ultime "1".
|
|
$sql="SELECT email FROM FWDUSER where domain = '".$_REQUEST["domain"]."'";
|
|
$result=$dbh->query($sql);
|
|
$rows=$result->fetchAll();
|
|
|
|
$LIMIT = "LIMIT ".(count($rows) - 1).",30";
|
|
|
|
# Troviamo le ultime "1" email del dominio
|
|
|
|
$sql = "SELECT email,fwdaddr,domain FROM FWDUSER where domain = '".$_REQUEST["domain"]."' order by email ".$LIMIT;
|
|
$result=$dbh->query($sql);
|
|
$rows=$result->fetchAll();
|
|
$index=0;
|
|
|
|
if ( count($rows) > 0) {
|
|
|
|
foreach($rows as $row){
|
|
$index += 1;
|
|
echo "<tr>".
|
|
"<td width=5%>".$index.
|
|
"<td width=46%>".$row["email"].
|
|
"<td width=23%>".$row["fwdaddr"].
|
|
"<td width=23%>".$row["domain"];
|
|
}
|
|
|
|
} else {
|
|
|
|
echo "<tr>".
|
|
"<td colspan=4 align=center><font color=red>no email found</font>";
|
|
|
|
}
|
|
|
|
echo "<tr bgcolor=yellow>".
|
|
"<td colspan=4>".
|
|
"Dati nuovo utente:".
|
|
"<p>".
|
|
"email internet: ";
|
|
|
|
?>
|
|
|
|
<INPUT id='ip1' onkeyup='updateOther(this);'
|
|
TYPE='TEXT' NAME='email' SIZE='30' MAXLENGTH='50'>
|
|
|
|
<?php
|
|
|
|
echo
|
|
"@".$_REQUEST["domain"].
|
|
" ".
|
|
" - - >> ".
|
|
"alias o email di inoltro: <INPUT id=ip2 TYPE=TEXT NAME=fwdaddr1 SIZE=30 MAXLENGTH=50>".
|
|
" @ ".
|
|
"<select name=fwdaddr2>".
|
|
"<option value=".$def_fwd_server.">".$def_fwd_server."</option>".
|
|
"<option value=''>alias locale</option>".
|
|
"</select>".
|
|
"<p>".
|
|
"<br><strong><font color=red>email</font></strong>:<br>".
|
|
"<ul>".
|
|
"<li><strong>la prima parte della mail</strong> (il dominio e' gia' aggiunto in automatico)".
|
|
"<li><strong>*</strong> (per indicare un collettore)".
|
|
"</ul>".
|
|
"<p>".
|
|
"<br><strong><font color=red>alias o email di inoltro</font></strong>:<br>".
|
|
"<ul>".
|
|
"<li><strong>una email completa diversa</strong>, es: diversa_email@differente_dominio.it<br>".
|
|
"<li><strong>la prima parte della mail</strong> (il server di inoltro e' selezionato in automatico)".
|
|
"<li><strong>un alias locale</strong> (selezionare apposita voce dal menu a tendina)".
|
|
"</ul>".
|
|
"<p>".
|
|
" [ <a href='javascript:document.creamail.submit();'>crea questa email</a> ]".
|
|
" ".
|
|
" [ <a href='".$_SERVER["PHP_SELF"]."'>annulla</a> ]".
|
|
"<INPUT TYPE=HIDDEN name=domain value=".$_REQUEST["domain"].">".
|
|
"<INPUT TYPE=HIDDEN name=step value=2></FORM>".
|
|
"</tr></table>";
|
|
|
|
} else { // $_REQUEST["domain"] = "";
|
|
echo "<font color=red><b>Errore</b></font><p>".
|
|
"Campo nuovo dominio vuoto".
|
|
"<p><a href='javascript:history.back();'>Correzione</a>";
|
|
}
|
|
|
|
}
|
|
|
|
if ($_REQUEST["step"] == "2"){
|
|
|
|
$_REQUEST["fwdaddr1"] = filter_var($_REQUEST["fwdaddr1"], FILTER_SANITIZE_EMAIL);
|
|
if (filter_var($_REQUEST["fwdaddr1"], FILTER_VALIDATE_EMAIL) || ( $_REQUEST["fwdaddr2"] == '') ) {
|
|
|
|
$fwdaddr=strtolower($_REQUEST["fwdaddr1"]);
|
|
|
|
} else {
|
|
|
|
$fwdaddr=strtolower($_REQUEST["fwdaddr1"]."@".$_REQUEST["fwdaddr2"]);
|
|
|
|
}
|
|
|
|
$email=strtolower($_REQUEST["email"]."@".$_REQUEST["domain"]);
|
|
$errore=false;
|
|
|
|
$sql = "SELECT email FROM FWDUSER where email = '".$email."'";
|
|
$result=$dbh->query($sql);
|
|
$rows=$result->fetchAll();
|
|
|
|
if ( count($rows) > 0 ) {
|
|
$errore .= "email $email presente<p>";
|
|
}
|
|
|
|
if (strlen($_REQUEST["fwdaddr1"]) < "3" && ($_REQUEST["fwdaddr1"] !="*") ){
|
|
$errore .= "email <b>".$email."</b> troppo corta<p>";
|
|
}
|
|
|
|
if ($errore){
|
|
|
|
echo "<font color=red><b>Errore</b></font><p>".
|
|
$errore.
|
|
"<p><a href='javascript:history.back();'>Correzione</a>";
|
|
|
|
} else {
|
|
|
|
$sql = "insert into FWDUSER (email,fwdaddr,domain) VALUES ('".$email."','".$fwdaddr."','".$_REQUEST["domain"]."')";
|
|
$count = $dbh->exec($sql);
|
|
|
|
echo "<p><FONT COLOR=green>MAIL DB ... OK</font><br>".
|
|
"[ <a href=mail-restart.sh>Sincronizza</a> ] o aspetta 2s per la procedura automatica";
|
|
|
|
echo '<meta http-equiv="refresh" content="2;url=mail-restart.php" />';
|
|
}
|
|
}
|
|
|
|
?>
|
|
|
|
<!-- ------------------------------------------------------------------------ -->
|
|
|
|
<?php require 'include/inc-footer.php';?>
|
|
|
|
<!-- ------------------------------------------------------------------------ -->
|