finishing email class. Need testing
This commit is contained in:
parent
97923c62e1
commit
a11fac44ae
|
@ -1,13 +1,9 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
$Id: mail_doedit.php, author : squidly
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
AlternC - Web Hosting System
|
AlternC - Web Hosting System
|
||||||
Copyright (C) 2002 by the AlternC Development Team.
|
Copyright (C) 2000-2012 by the AlternC Development Team.
|
||||||
http://alternc.org/
|
https://alternc.org/
|
||||||
----------------------------------------------------------------------
|
|
||||||
Based on:
|
|
||||||
Valentin Lacambre's web hosting softwares: http://altern.org/
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
LICENSE
|
LICENSE
|
||||||
|
|
||||||
|
@ -23,7 +19,7 @@
|
||||||
|
|
||||||
To read the license please visit http://www.gnu.org/copyleft/gpl.html
|
To read the license please visit http://www.gnu.org/copyleft/gpl.html
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
Purpose of file: Create a new mail account
|
Purpose of file: Edit mail account settings
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -31,57 +27,98 @@
|
||||||
require_once("../class/config.php");
|
require_once("../class/config.php");
|
||||||
|
|
||||||
$fields = array (
|
$fields = array (
|
||||||
"dom_id" =>array ("request","integer",""),
|
"mail_id" =>array ("request","integer",""),
|
||||||
"mail_id" => array ("request","integer",""),
|
|
||||||
"pass" => array ("request","string",""),
|
"pass" => array ("request","string",""),
|
||||||
"passconf" => array("request","string",""),
|
"passconf" => array("request","string",""),
|
||||||
"is_enabled" => array("request","string",""),
|
"quotamb" => array("request","integer",0),
|
||||||
"enable" => array("request","string","")
|
"enabled" => array("request","boolean",true),
|
||||||
);
|
"islocal" => array("request","boolean",true),
|
||||||
|
"recipients" => array("request","string",""),
|
||||||
|
);
|
||||||
|
|
||||||
getFields($fields);
|
getFields($fields);
|
||||||
|
|
||||||
/*
|
$isedit=true; // if we go back to edit, it will know ;)
|
||||||
* checking the password
|
$error="";
|
||||||
*/
|
|
||||||
|
|
||||||
if(isset($pass) && $pass != ""){
|
// We check that email first ... so that we can compare its status with our ...
|
||||||
|
if (!$res=$mail->get_details($mail_id)) {
|
||||||
|
$error=$err->errstr();
|
||||||
|
include("main.php");
|
||||||
|
exit();
|
||||||
|
} else {
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* checking the password
|
||||||
|
*/
|
||||||
|
if(isset($pass) && $pass != ""){
|
||||||
if($pass != $passconf){
|
if($pass != $passconf){
|
||||||
$error = _("Password do not match");
|
$error = _("Passwords do not match");
|
||||||
include ("mail_edit.php");
|
include ("mail_edit.php");
|
||||||
exit();
|
exit();
|
||||||
}else{
|
} else {
|
||||||
//adding the password
|
if (!$mail->set_passwd($mail_id,$pass)) { /* SET THE PASSWORD */
|
||||||
$mail->setpasswd($mail_id,$pass);
|
$error=$err->errstr();
|
||||||
header ("Location: /mail_properties.php?mail_id=$mail_id");
|
include ("mail_edit.php");
|
||||||
|
exit();
|
||||||
|
} else {
|
||||||
|
$error.=$err->errstr()."<br />";
|
||||||
}
|
}
|
||||||
}
|
|
||||||
/*
|
|
||||||
* checking the activation state of the mail
|
|
||||||
* redirecting according to it.
|
|
||||||
*/
|
|
||||||
if($is_enabled == 1){
|
|
||||||
if(intval($enable)==0){
|
|
||||||
//desactivation
|
|
||||||
$mail->disable($mail_id);
|
|
||||||
header ("Location: /mail_properties.php?mail_id=$mail_id");
|
|
||||||
}else{
|
|
||||||
$error = _("Already Activated");
|
|
||||||
include ("mail_edit.php");
|
|
||||||
exit();
|
|
||||||
}
|
}
|
||||||
}elseif($is_enabled == 0){
|
}
|
||||||
if(intval($enable)==0){
|
|
||||||
// c'est dja inactif
|
|
||||||
$error = _("Already disabled ");
|
/*
|
||||||
|
* now the enable/disable status
|
||||||
|
*/
|
||||||
|
if ($res["enabled"] && !$enabled) {
|
||||||
|
if (!$mail->disable($mail_id)) { /* DISABLE */
|
||||||
|
$error=$err->errstr();
|
||||||
include ("mail_edit.php");
|
include ("mail_edit.php");
|
||||||
exit();
|
exit();
|
||||||
}else{
|
} else {
|
||||||
//Activation
|
$error.=$err->errstr()."<br />";
|
||||||
$mail->enable($mail_id);
|
}
|
||||||
header ("Location: /mail_properties.php?mail_id=$mail_id");
|
}
|
||||||
|
if (!$res["enabled"] && $enabled) {
|
||||||
|
if (!$mail->enable($mail_id)) { /* ENABLE */
|
||||||
|
$error=$err->errstr();
|
||||||
|
include ("mail_edit.php");
|
||||||
|
exit();
|
||||||
|
} else {
|
||||||
|
$error.=$err->errstr()."<br />";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* now the islocal + quota + recipients
|
||||||
|
*/
|
||||||
|
if (!$mail->set_details($mail_id,$islocal,$quotamb,$recipients)) { /* SET OTHERS */
|
||||||
|
$error=$err->errstr();
|
||||||
|
include ("mail_edit.php");
|
||||||
|
exit();
|
||||||
|
} else {
|
||||||
|
$error.=$err->errstr()."<br />";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Other elements by hooks
|
||||||
|
*/
|
||||||
|
$rh=$hooks->invoke("mail_edit_post",array($mail_id));
|
||||||
|
if (in_array(false,$res,true)) {
|
||||||
|
include ("mail_edit.php");
|
||||||
|
exit();
|
||||||
|
} else {
|
||||||
|
foreach($rh as $h) if ($h) $error.=$h."<br />";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($error) $error=_("Your email has been edited successfully");
|
||||||
|
|
||||||
|
$_REQUEST["domain_id"]=$dom->get_domain_byname($res["domain"]);
|
||||||
|
include("mail_list.php");
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,13 @@ require_once("../class/config.php");
|
||||||
include_once("head.php");
|
include_once("head.php");
|
||||||
|
|
||||||
$fields = array (
|
$fields = array (
|
||||||
"mail_id" => array ("request", "integer", ""),
|
"mail_id" =>array ("request","integer",""),
|
||||||
|
"pass" => array ("request","string",""),
|
||||||
|
"passconf" => array("request","string",""),
|
||||||
|
"quotamb" => array("request","integer",0),
|
||||||
|
"enabled" => array("request","boolean",true),
|
||||||
|
"islocal" => array("request","boolean",true),
|
||||||
|
"recipients" => array("request","string",""),
|
||||||
);
|
);
|
||||||
getFields($fields);
|
getFields($fields);
|
||||||
|
|
||||||
|
@ -35,22 +41,49 @@ if (!$res=$mail->get_details($mail_id)) {
|
||||||
include("main.php");
|
include("main.php");
|
||||||
exit();
|
exit();
|
||||||
} else {
|
} else {
|
||||||
foreach($res as $key=>$val) $$key=$val;
|
|
||||||
|
foreach($res as $key=>$val) $$key=$val;
|
||||||
|
$quotamb=$quota;
|
||||||
|
|
||||||
|
if ($islocal && $mailbox_action=="DELETE") $islocal=false;
|
||||||
|
|
||||||
|
if (isset($isedit) && $isedit) getFields($fields); // we came from a POST, so let's get the request again ...
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<h3><?php printf(_("Editing the email %s"),$res["address"]."@".$res["domain"]); ?></h3>
|
<h3><?php printf(_("Editing the email %s"),$res["address"]."@".$res["domain"]); ?></h3>
|
||||||
<hr id="topbar"/>
|
<hr id="topbar"/>
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
|
|
||||||
|
<?php
|
||||||
|
if (isset($error)) {
|
||||||
|
echo "<p class=\"error\">$error</p>";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
<form action="mail_doedit.php" method="post" name="main" id="main">
|
<form action="mail_doedit.php" method="post" name="main" id="main">
|
||||||
<input type="hidden" name="mail_id" value="<?php echo $mail_id; ?>" />
|
<input type="hidden" name="mail_id" value="<?php echo $mail_id; ?>" />
|
||||||
<table class="tedit">
|
<table class="tedit">
|
||||||
|
<tr><th colspan="2"><b><?php __("Is this email enabled?"); ?></b></th></tr>
|
||||||
|
|
||||||
|
<tr><td style="width: 50%; text-align: justify"><?php __("You can enable or disable this email anytime. This will bounce any mail received on this address, but will not delete the stored email, or the redirections or password."); ?><br />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<input type="radio" name="enabled" id="enabled0" class="inc" value="0"<?php cbox($enabled==0); ?> /><label for="enabled0"><?php __("No (email disabled)"); ?></label>
|
||||||
|
<input type="radio" name="enabled" id="enabled1" class="inc" value="1"<?php cbox($enabled==1); ?> /><label for="enabled1"><?php __("Yes (email enabled)"); ?></label>
|
||||||
|
</p>
|
||||||
|
</td></tr>
|
||||||
|
|
||||||
<tr><th colspan="2"><b><?php __("Is it a POP/IMAP account?"); ?></b></th></tr>
|
<tr><th colspan="2"><b><?php __("Is it a POP/IMAP account?"); ?></b></th></tr>
|
||||||
<tr><td style="width: 50%; text-align: justify"><?php __("POP/IMAP accounts are receiving emails in the server. To read those emails, you can use a Webmail, or a mail client such as Thunderbird. If you don't use POP/IMAP, you can configure your email to be a redirection to other existing emails. The maximum size is in megabytes, use 0 to make it infinite."); ?><br />
|
<tr><td style="width: 50%; text-align: justify"><?php __("POP/IMAP accounts are receiving emails in the server. To read those emails, you can use a Webmail, or a mail client such as Thunderbird. If you don't use POP/IMAP, you can configure your email to be a redirection to other existing emails. The maximum size is in megabytes, use 0 to make it infinite."); ?><br />
|
||||||
<p> </p>
|
<p> </p>
|
||||||
<?php if ($islocal) { ?>
|
<?php if ($islocal) { ?>
|
||||||
<p><?php printf(_('This mailbox is currently using %1$s / %2$s'),format_size($used),format_size($quotabytes)); ?></p>
|
<p><?php printf(_('This mailbox is currently using %1$s / %2$s'),format_size($used),format_size($quotabytes)); ?></p>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
|
<?php if ($mailbox_action=="DELETE") { ?>
|
||||||
|
<p><span class="error"><?php __("This mailbox is pending deletion. You can recover its mails by setting it to 'Yes' NOW!"); ?></span></p>
|
||||||
|
<?php } ?>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
|
@ -61,7 +94,7 @@ foreach($res as $key=>$val) $$key=$val;
|
||||||
<table class="tedit" >
|
<table class="tedit" >
|
||||||
<tr><td><label for="pass"><?php __("Enter a POP/IMAP password"); ?></label></td><td><input type="password" class="int" name="pass" id="pass" value="" size="20" maxlength="32" /></td></tr>
|
<tr><td><label for="pass"><?php __("Enter a POP/IMAP password"); ?></label></td><td><input type="password" class="int" name="pass" id="pass" value="" size="20" maxlength="32" /></td></tr>
|
||||||
<tr><td><label for="passconf"><?php __("Confirm password"); ?></label></td><td><input type="password" class="int" name="passconf" id="passconf" value="" size="20" maxlength="32" /></td></tr>
|
<tr><td><label for="passconf"><?php __("Confirm password"); ?></label></td><td><input type="password" class="int" name="passconf" id="passconf" value="" size="20" maxlength="32" /></td></tr>
|
||||||
<tr><td><label for="quota"><?php __("Maximum allowed size of this Mailbox"); ?></label></td><td><input type="text" class="int intleft" style="text-align: right" name="quota" id="quota" value="<?php ehe($quota); ?>" size="7" maxlength="6" /><span class="int intright"><?php __("MB"); ?></span></td></tr>
|
<tr><td><label for="quotamb"><?php __("Maximum allowed size of this Mailbox"); ?></label></td><td><input type="text" class="int intleft" style="text-align: right" name="quotamb" id="quotamb" value="<?php ehe($quotamb); ?>" size="7" maxlength="6" /><span class="int intright"><?php __("MB"); ?></span></td></tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</td></tr>
|
</td></tr>
|
||||||
|
@ -101,14 +134,14 @@ function popoff() {
|
||||||
$('#turnoff').show();
|
$('#turnoff').show();
|
||||||
$('#poptbl').addClass('grey');
|
$('#poptbl').addClass('grey');
|
||||||
$('#pass').attr("disabled", "disabled");
|
$('#pass').attr("disabled", "disabled");
|
||||||
$('#quota').attr("disabled", "disabled");
|
$('#quotamb').attr("disabled", "disabled");
|
||||||
$('#passconf').attr("disabled", "disabled");
|
$('#passconf').attr("disabled", "disabled");
|
||||||
}
|
}
|
||||||
function popon() {
|
function popon() {
|
||||||
$('#turnoff').hide();
|
$('#turnoff').hide();
|
||||||
$('#poptbl').removeClass('grey');
|
$('#poptbl').removeClass('grey');
|
||||||
$('#pass').removeAttr("disabled");
|
$('#pass').removeAttr("disabled");
|
||||||
$('#quota').removeAttr("disabled");
|
$('#quotamb').removeAttr("disabled");
|
||||||
$('#passconf').removeAttr("disabled");
|
$('#passconf').removeAttr("disabled");
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -424,7 +424,7 @@ span#emaildom {
|
||||||
}
|
}
|
||||||
.tedit td, .tedit th {
|
.tedit td, .tedit th {
|
||||||
border: 1px solid #aaa;
|
border: 1px solid #aaa;
|
||||||
padding: 6px 10px;
|
padding: 10px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,8 @@ Merci de revenir plus tard.";
|
||||||
*/
|
*/
|
||||||
ini_set('display_errors', true);
|
ini_set('display_errors', true);
|
||||||
|
|
||||||
// Some constant
|
// FIXME: Some constant, we put them here so that we can change them later ;) LFS
|
||||||
|
define('ALTERNC_MAIL', "/var/alternc/mail");
|
||||||
define('ALTERNC_HTML', "/var/alternc/html");
|
define('ALTERNC_HTML', "/var/alternc/html");
|
||||||
define('ALTERNC_PANEL', "/var/alternc/bureau");
|
define('ALTERNC_PANEL', "/var/alternc/bureau");
|
||||||
define('ALTERNC_LOGS', "/var/alternc/logs");
|
define('ALTERNC_LOGS', "/var/alternc/logs");
|
||||||
|
|
|
@ -169,7 +169,7 @@ class m_mail {
|
||||||
|
|
||||||
// Validate the email syntax:
|
// Validate the email syntax:
|
||||||
$m=$mail."@".$domain;
|
$m=$mail."@".$domain;
|
||||||
if (!filter_var($m,FILTER_VALIDATE_EMAIL)){
|
if (!filter_var($m,FILTER_VALIDATE_EMAIL) || (strpos($m,"..")!==false) || (strpos($m,"/")!==false) ) {
|
||||||
$err->raise("mail",_("The email you entered is syntaxically incorrect"));
|
$err->raise("mail",_("The email you entered is syntaxically incorrect"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -211,10 +211,13 @@ class m_mail {
|
||||||
$err->log("mail","get_details");
|
$err->log("mail","get_details");
|
||||||
|
|
||||||
$mail_id=intval($mail_id);
|
$mail_id=intval($mail_id);
|
||||||
|
// Validate that this email is owned by me...
|
||||||
|
if (!($mail=$this->is_it_my_mail($mail_id))) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// We fetch all the informations for that email: these will fill the hastable :
|
// We fetch all the informations for that email: these will fill the hastable :
|
||||||
$db->query("SELECT a.address, a.password, a.`enabled`, d.domaine AS domain, m.quota, m.quota*1024*1024 AS quotabytes, m.bytes AS used, NOT ISNULL(m.id) AS islocal, a.type, r.recipients, m.lastlogin
|
$db->query("SELECT a.address, a.password, a.enabled, d.domaine AS domain, m.quota, m.quota*1024*1024 AS quotabytes, m.bytes AS used, NOT ISNULL(m.id) AS islocal, a.type, r.recipients, m.lastlogin, a.mail_action, m.mail_action AS mailbox_action FROM (address a LEFT JOIN mailbox m ON m.address_id=a.id) LEFT JOIN recipient r ON r.address_id=a.id, domaines d WHERE a.id=".$mail_id." AND d.id=a.domain_id;");
|
||||||
FROM (address a LEFT JOIN mailbox m ON m.address_id=a.id) LEFT JOIN recipient r ON r.address_id=a.id, domaines d WHERE a.id=$mail_id AND d.id=a.domain_id;");
|
|
||||||
if (! $db->next_record()) return false;
|
if (! $db->next_record()) return false;
|
||||||
$details=$db->Record;
|
$details=$db->Record;
|
||||||
// if necessary, fill the typedata with data from hooks ...
|
// if necessary, fill the typedata with data from hooks ...
|
||||||
|
@ -226,6 +229,8 @@ class m_mail {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private $isitmy_cache=array();
|
||||||
|
|
||||||
/* ----------------------------------------------------------------- */
|
/* ----------------------------------------------------------------- */
|
||||||
/** Check if an email is mine ...
|
/** Check if an email is mine ...
|
||||||
*
|
*
|
||||||
|
@ -236,12 +241,15 @@ class m_mail {
|
||||||
function is_it_my_mail($mail_id){
|
function is_it_my_mail($mail_id){
|
||||||
global $err,$db,$cuid;
|
global $err,$db,$cuid;
|
||||||
$mail_id=intval($mail_id);
|
$mail_id=intval($mail_id);
|
||||||
|
// cache it (may be called more than one time in the same page).
|
||||||
|
if (isset($this->isitmy_cache[$mail_id])) return $this->isitmy_cache[$mail_id];
|
||||||
|
|
||||||
$db->query("SELECT concat(a.address,'@',d.domaine) AS email FROM address a, domaines d WHERE d.id=a.domain_id AND a.id=$mail_id AND d.compte=$cuid;");
|
$db->query("SELECT concat(a.address,'@',d.domaine) AS email FROM address a, domaines d WHERE d.id=a.domain_id AND a.id=$mail_id AND d.compte=$cuid;");
|
||||||
if ($db->next_record()) {
|
if ($db->next_record()) {
|
||||||
return $db->f("email");
|
return $this->isitmy_cache[$mail_id]=$db->f("email");
|
||||||
} else {
|
} else {
|
||||||
$err->raise("mail",_("This email is not yours, you can't change anything on it"));
|
$err->raise("mail",_("This email is not yours, you can't change anything on it"));
|
||||||
return false;
|
return $this->isitmy_cache[$mail_id]=false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -353,6 +361,101 @@ class m_mail {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ----------------------------------------------------------------- */
|
||||||
|
/** set the password of an email address.
|
||||||
|
* @param $mail_id integer email ID
|
||||||
|
* @param $pass string the new password.
|
||||||
|
* @return boolean true if the password has been set, false else, raise an error.
|
||||||
|
*/
|
||||||
|
function set_passwd($mail_id,$pass){
|
||||||
|
global $db,$err,$admin;
|
||||||
|
$err->log("mail","setpasswd");
|
||||||
|
|
||||||
|
if (!($email=$this->is_it_my_mail($mail_id))) return false;
|
||||||
|
if (!$admin->checkPolicy("pop",$email,$pass)) return false;
|
||||||
|
if (!$db->query("UPDATE address SET password='"._md5cr($pass)."' where id=$mail_id;")) return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ----------------------------------------------------------------- */
|
||||||
|
/** Enables an email address.
|
||||||
|
* @param $mail_id integer Email ID
|
||||||
|
* @return boolean true if the email has been enabled.
|
||||||
|
*/
|
||||||
|
function enable($mail_id){
|
||||||
|
global $db,$err;
|
||||||
|
$err->log("mail","enable");
|
||||||
|
if (!($email=$this->is_it_my_mail($mail_id))) return false;
|
||||||
|
if (!$db->query("UPDATE address SET `enabled`=1 where id=$mail_id;")) return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ----------------------------------------------------------------- */
|
||||||
|
/** Disables an email address.
|
||||||
|
* @param $mail_id integer Email ID
|
||||||
|
* @return boolean true if the email has been enabled.
|
||||||
|
*/
|
||||||
|
function disable($mail_id){
|
||||||
|
global $db,$err;
|
||||||
|
$err->log("mail","disable");
|
||||||
|
if (!($email=$this->is_it_my_mail($mail_id))) return false;
|
||||||
|
if (!$db->query("UPDATE address SET `enabled`=0 where id=$mail_id;")) return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ----------------------------------------------------------------- */
|
||||||
|
/** Function used to update an email settings
|
||||||
|
* should be used by the web interface, not by third-party programs.
|
||||||
|
*
|
||||||
|
* @param $mail_id integer the number of the email to delete
|
||||||
|
* @param $islocal boolean is it a POP/IMAP mailbox ?
|
||||||
|
* @param $quotamb integer if islocal=1, quota in MB
|
||||||
|
* @param $recipients string recipients, one mail per line.
|
||||||
|
* @return true if the email has been properly edited
|
||||||
|
* or false if an error occured ($err is filled accordingly)
|
||||||
|
*/
|
||||||
|
function set_details($mail_id, $islocal, $quotamb, $recipients) {
|
||||||
|
global $err,$db,$cuid,$quota,$dom,$hooks;
|
||||||
|
$err->log("mail","set_details");
|
||||||
|
if (!($me=$this->get_details($mail_id))) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if ($me["islocal"] && !$islocal) {
|
||||||
|
// delete pop
|
||||||
|
$db->query("UPDATE mailbox SET mail_action='DELETE' WHERE address_id=".$mail_id.";");
|
||||||
|
}
|
||||||
|
if (!$me["islocal"] && $islocal) {
|
||||||
|
// create pop
|
||||||
|
$path=ALTERNC_MAIL."/".substr($me["address"]."_",0,1)."/".$me["address"]."_".$me["domain"];
|
||||||
|
$db->query("INSERT INTO mailbox SET address_id=".$mail_id.", path='".addslashes($path)."';");
|
||||||
|
}
|
||||||
|
if ($me["islocal"] && $islocal && $me["mailbox_action"]=="DELETE") {
|
||||||
|
$db->query("UPDATE mailbox SET mail_action='' WHERE mail_action='DELETE' AND address_id=".$mail_id.";");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($islocal) {
|
||||||
|
$db->query("UPDATE mailbox SET quota=".intval($quotamb)." WHERE address_id=".$mail_id.";");
|
||||||
|
}
|
||||||
|
|
||||||
|
$r=explode("\n",$recipients);
|
||||||
|
$red="";
|
||||||
|
foreach($r as $m) {
|
||||||
|
$m=trim($m);
|
||||||
|
if ($m && filter_var($m,FILTER_VALIDATE_EMAIL)) {
|
||||||
|
$red.=$m."\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$db->query("DELETE FROM recipient WHERE address_id=".$mail_id.";");
|
||||||
|
if ($m) {
|
||||||
|
$db->query("INSERT INTO recipient SET address_id=".$mail_id.", recipients='".addslashes($red)."';");
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ############################################################ */
|
/* ############################################################ */
|
||||||
|
@ -443,39 +546,6 @@ class m_mail {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* activate a mail address.
|
|
||||||
* @param integer mail_id: unique mail identifier
|
|
||||||
*/
|
|
||||||
function enable($mail_id){
|
|
||||||
global $db,$err;
|
|
||||||
$err->log("mail","enable");
|
|
||||||
if( !$db->query("UPDATE address SET `enabled`=1 where id=$mail_id;"))return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* disable a mail address.
|
|
||||||
* @param integer mail_id: unique mail identifier
|
|
||||||
*/
|
|
||||||
function disable($mail_id){
|
|
||||||
global $db,$err;
|
|
||||||
$err->log("mail","enable");
|
|
||||||
if( !$db->query("UPDATE address SET `enabled`=0 where id=$mail_id;")) return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* setpasswd a mail address.
|
|
||||||
* @param integer mail_id: unique mail identifier
|
|
||||||
*/
|
|
||||||
function setpasswd($mail_id,$pass,$passwd_type){
|
|
||||||
global $db,$err,$admin;
|
|
||||||
$err->log("mail","setpasswd");
|
|
||||||
if(!$admin->checkPolicy("pop",$mail_full,$pass)) return false;
|
|
||||||
if(!$db->query("UPDATE address SET password='"._md5cr($pass)."' where id=$mail_id;")) return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* mail_delete a mail address.
|
* mail_delete a mail address.
|
||||||
|
|
Loading…
Reference in New Issue