| 
 Создание почтовых ящиков без GUI - Alien85 -  11-25-2010 05:41 AM
 
 Как используя ispcp добавлять и удалять почтовые ящики у одного домена не используя WEB интерфейс ispcp?
 
 Версия: 1.0.7 RC2, Debian Lenny 5
 Искал в php файлах, не очень понятно
 единственное, что нашел, это: /var/www/ispcp/engine/ispcp-mbox-mngr
 но как его использовать из php?
 
 Все это нужно для создания почтовой службы в одном из доменов на сервере с ispcp. Естественно регистрация e-mail-ов должна быть в этой самой почтовой службе (все написано на php). Интерфейс для получения и отправки почты уже есть, используя /var/mail/virtual/*
 Интерфейс для создания и удаления ящиков есть, но для mysql (на старом сервере postfix использовал mysql, а тут файлы)...
 
 Если кто-нибудь что-нибудь знает, подскажите.
 
 
 RE: Создание почтовых ящиков без GUI - Alien85 -  11-25-2010 01:00 PM
 
 Вот скрипт создания ящиков:
 Для работы нужно добавить пользователя mysql ispcp_mails
 
 
 
Code:
 #!/bin/bash# by calocen@gmail.com
 # ver.: 1.0
 # 01/02/2008
 # creating a new email account in a control panel structure with default config
 # parameters:
 # 1: email_account@domain.tld where domain.tld must be in control panel database and
 # email_account shold not be create even as an alias
 # 2: password
 # 3: [rebuild]: if true, then do a rebuild of rqst-orders
 
 DEBUG="true"
 
 # syntax control
 if [ $# -lt 2 ] ; then
 echo -e "\n\nSyntax: "
 echo -e "\t $0 <name@domain.tld> <account_password>"
 echo -e "\t Where domain.tld must exists in ispcp panel"
 exit 01
 fi
 cEmail=$1
 cPas=$2
 [ -z $3 ] && bRebuild="false"
 [ ! -z $3 ] && bRebuild="true"
 $DEBUG && echo $bRebuild
 cAcc=`echo $cEmail | cut -f1 -d"@"`
 cDom=`echo $cEmail | cut -f2 -d"@"`
 
 # check if domain exists and get domain Id
 nDomID=$(mysql ispcp -ss -u ispcp_mails -pMYPASSWORD -n -e "SELECT domain_id FROM domain WHERE domain_name='$cDom';")
 
 if [ -z $nDomID ]
 then
 echo -e "\n\n $cDom not exists, please add it before add email accounts"
 exit 02
 fi
 
 # Check if email accounts exists
 nMailID=$(mysql ispcp -ss -u ispcp_mails -pMYPASSWORD -n -e "SELECT mail_id FROM mail_users WHERE domain_id='$nDomID' AND mail_acc='$cAcc';")
 $DEBUG && echo -e "nDomID:$nDomID\tcDom:$cDom\tcAcc:$cAcc"
 if [ ! -z $nMailID ]
 then
 echo -e "\n\nE-Mail account is exists"
 echo -e "\nnDomID:$nDomID\tcDom:$cDom\tcAcc:$cAcc"
 exit 03
 fi
 
 # composing email record in mail_users table
 cSql="INSERT INTO mail_users(mail_acc, mail_pass, mail_forward, domain_id, mail_type, sub_id, status, mail_addr) VALUES ('$cAcc', '$cPas', '_no_', $nDomID, 'normal_mail', 0, 'change', '$cEmail');"
 $DEBUG &&  echo -e "$cSql"
 mysql ispcp -u ispcp_mails -pMYPASSWORD -e "$cSql"
 
 if [ "$?" -ne "0" ] ; then exit 1 ; fi
 
 # rebuild virtual aliases
 /usr/sbin/postmap /etc/postfix/ispcp
 
 # rebuild mail accounts if set rebuild parameter
 $bRebuild && /var/www/ispcp/engine/ispcp-rqst-mngr
 вот скрипт для удаления ящиков, только алиасы он не удаляет...
 
 
Code:
 #!/bin/bash# by alien.ru@mail.ru from by calocen@gmail.com (ispcp_add_email.sh)
 # ver.: 1.0
 # 25/11/2010
 # remove email account in a control panel structure with default config
 # parameters:
 # 1: email_account@domain.tld where (aliases not deleted)
 # 2: [rebuild]: if true, then do a rebuild of rqst-orders
 
 DEBUG="true"
 
 # syntax control
 if [ $# -lt 1 ] ; then
 echo -e "\n\nSyntax: "
 echo -e "\t $0 <name@domain.tld>"
 exit 01
 fi
 cEmail=$1
 [ -z $2 ] && bRebuild="false"
 [ ! -z $2 ] && bRebuild="true"
 $DEBUG && echo $bRebuild
 cAcc=`echo $cEmail | cut -f1 -d"@"`
 cDom=`echo $cEmail | cut -f2 -d"@"`
 
 # check if domain exists and get domain Id
 nDomID=$(mysql ispcp -ss -u ispcp_mails -pMYPASSWORD -n -e "SELECT domain_id FROM domain WHERE domain_name='$cDom';")
 
 if [ -z $nDomID ]
 then
 echo -e "\n\n $cDom not exists, please add it before add email accounts"
 exit 02
 fi
 
 # Check if email accounts exists
 nMailID=$(mysql ispcp -ss -u ispcp_mails -pMYPASSWORD -n -e "SELECT mail_id FROM mail_users WHERE domain_id='$nDomID' AND mail_acc='$cAcc';")
 $DEBUG && echo -e "nDomID:$nDomID\tcDom:$cDom\tcAcc:$cAcc"
 if [ -z $nMailID ]
 then
 echo -e "\n\nE-Mail account is not exists"
 echo -e "\nnDomID:$nDomID\tcDom:$cDom\tcAcc:$cAcc"
 exit 03
 fi
 
 # remove email record in mail_users table
 cSql="DELETE FROM mail_users WHERE mail_id='$nMailID' LIMIT 1;"
 $DEBUG &&  echo -e "$cSql"
 mysql ispcp -u ispcp_mails -pMYPASSWORD -e "$cSql"
 
 if [ "$?" -ne "0" ] ; then exit 1 ; fi
 
 # rebuild virtual aliases
 /usr/sbin/postmap /etc/postfix/ispcp
 
 # rebuild mail accounts if set rebuild parameter
 $bRebuild && /var/www/ispcp/engine/ispcp-rqst-mngr
 
 rm -R /var/mail/virtual/$cDom/$cAcc
 сейчас проблема в том, что этот скрипт не удаляет ящики в файлах /etc/postfix/ispcp/* и /var/www/ispcp/postfix/* (последний каталог написал на память), да и последнюю строчку rm -R /var/mail/virtual/$cDom/$cAcc я сам добавил, все это должен делать ispcp, но как?
 
 
 
 |