Hi there!
We've the following Shell-Script, which creates an transport-File (transport_pop3.in) via an Database-Query:
How can I create now an Script which creates me an User for Dovecot? My script writes me the User in the File 'transport_pop3.in' but I wanna create an Dovecot-User as discribed here ---> https://wiki.dovecot.org/HowTo/SimpleVirtualInstall...
I think I've to insert it after the line 'echo "$email dovecot:" >> "${FILE}" ' of my script but I don't know how to get the User from my ${FILE} an to work on with it!?
Can someone of you help me and has any ideas?
Thanks and best regards,
Maze-M
We've the following Shell-Script, which creates an transport-File (transport_pop3.in) via an Database-Query:
Code:
#!/usr/bin/env bash
export PATH=$PATH:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin
#
#
# Afer the changes have been made we issue a postfix reload to propagate our changes
#
date
#
# CONFIG
#
POSTFIX_ETC="/usr/local/etc/postfix"
# Our internal IP ranges, Postfix passes all mail unfiltered/unchecked
NETWORK_TABLE=("192.168.0.0/24")
# Address of Mail archive
BCC_MAIL_ARCHIVE="bcc-all@mailgate.intern.hoster.com"
# Static local addresses to handle by our dovecot lda
TRANSPORT_STATIC_DOVECOT=("bulk-api@mailgate.intern.hoster.com" "bcc-all@mailgate.intern.hoster.com")
# The location of our static list of old ps3 domains
STATIC_PS3_HOSTS="${POSTFIX_ETC}/STATIC_PS3_HOSTS"
# Our hardcore hadcoded mailadresses for debugging purpose
STATIC_HARDCODE_HARDCODED_MAIL_ADDRESSES_WANTED_BY_USER_WITH_A_RIDICULOUS_LONG_VARIABLE_NAME=("bulk_
mw1@hoster.de" "bulk_mw2@hoster.de")
# GLOBALS
DB_HOST='dbmaster.intern.hoster.com'
DB_USER='mail_exporter'
DB_PASS=`cat /root/.db.passwd`
DB_NAME='mail_exporter_db'
MYSQL_CMD='/usr/local/bin/mysql'
MYSQL_PRM="-s --batch -h ${DB_HOST} -u ${DB_USER} -p${DB_PASS} ${DB_NAME}"
# FUNCTIONS
function error()
{
red='\033[0;31m'
NC='\033[0m' # No Color
echo -e "�~X| ${red}$1$NC"
exit 1
}
function ok()
{
green='\033[0;32m'
NC='\033[0m' # No Color
echo -e "* ${white}$1$NC"
}
# check if given file is not empty
function notEmpty()
{
LIMIT=${2}
if [ "${LIMIT}" == "" ]
then
LIMIT="1"
fi
LINES=`wc -l $1 | awk '{print $1}'`
if [[ "${LINES}" -lt "${LIMIT}" ]]
then
error "${1} is too small! (below ${LIMIT} lines)"
fi
}
#
# MAIN
#
cd "${POSTFIX_ETC}" || error "cant change to ${POSTFIX_ETC}"
# transport_relay
FILE="${POSTFIX_ETC}/transport_pop3.in"
rm -f "${FILE}"
SELECT='SELECT concat(email,"|",user,"|",pwd) FROM mail_exporter.context_addon_queues where server = "smtp.intern.hoster.com"'
for line in `echo "${SELECT}" | "${MYSQL_CMD}" ${MYSQL_PRM} `
do
email=`echo $line|cut -f 1 -d\|`
# user=`echo $line|cut -f 2 -d\|`
pass=`echo $line|cut -f 3 -d\|`
# echo "found $email = $user = $pass";
echo "$email dovecot:" >> "${FILE}"
done
#notEmpty "${FILE}" 800
ok "exported transport_pop3.in"
exit;
#
# Propagate our changes
#
make clean && make && service postfix reload && ok "Postfix reloaded."
How can I create now an Script which creates me an User for Dovecot? My script writes me the User in the File 'transport_pop3.in' but I wanna create an Dovecot-User as discribed here ---> https://wiki.dovecot.org/HowTo/SimpleVirtualInstall...
I think I've to insert it after the line 'echo "$email dovecot:" >> "${FILE}" ' of my script but I don't know how to get the User from my ${FILE} an to work on with it!?
Can someone of you help me and has any ideas?
Thanks and best regards,
Maze-M