petar.company/mail-adduser-fwd.php
2025-03-01 00:58:18 +01:00

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>".
"&nbsp;&nbsp;".
"<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>".
"&nbsp;".
"<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"].
"&nbsp;&nbsp;".
"&nbsp;- - >> &nbsp;".
"alias o email di inoltro: <INPUT id=ip2 TYPE=TEXT NAME=fwdaddr1 SIZE=30 MAXLENGTH=50>".
"&nbsp; @ &nbsp;".
"<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> ]".
"&nbsp;&nbsp;".
" [ <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';?>
<!-- ------------------------------------------------------------------------ -->