HEX
Server: Apache/2.2.34 (Unix) mod_fastcgi/mod_fastcgi-SNAP-0910052141
System: Linux Kou-Etsu-Dou 4.4.59+ #25556 SMP PREEMPT Thu Mar 4 18:03:46 CST 2021 x86_64
User: hosam (1026)
PHP: 7.2.29
Disabled: NONE
Upload Files
File: //volume1/@appstore/MailClient/scripts/mailclient_smtp_change_hook.sh
#!/bin/sh
PACKAGE_DIR="/var/packages/MailClient"
MAILSERVER_BACKEND_BIN="/var/packages/MailPlus-Server/target/bin/syno_mailserver_backend"
TARGET_CACHED_CONF_FILE="/run/mailplus_cached_conf"
TARGET_CACHED_CONF_FILE_TMP="/run/mailplus_cached_conf.tmp"
NOTIFY_DAEMON_BIN="${PACKAGE_DIR}/target/tool/notify_daemon"
REGISTER_SCRIPT="${PACKAGE_DIR}/target/scripts/regist_server_service.sh"
MANAGE_POP3_DAEMON="${PACKAGE_DIR}/target/tool/manage_pop3_daemon"
SKIP_FETCHMAIL_ARG="skipFetchmail"
KEYS=("account_type" \
    "acc_domain_name" \
    "win_domain_short_name" \
    "message_limit" \
    "smtp_enabled" \
    "smtp_port" \
    "smtp_hostname" \
    "smtp_main_domain")

function print_log()
{
    /bin/logger -s -p local1.err  -t "SYNO.MailClient.Script" $1
}

function print_info()
{
    /bin/logger -s -p local1.info  -t "SYNO.MailClient.Script" $1
}

SKIP_FETCHMAIL="no"

for i in "$@"
do
    if [ "$i" = "${SKIP_FETCHMAIL_ARG}" ]; then
        SKIP_FETCHMAIL="yes"
    fi
done

###
### stop all pop3 fetchmail proccess
###
if [ "${SKIP_FETCHMAIL}" = "no" ]; then
    ${MANAGE_POP3_DAEMON} -a stop
fi

###
### cached smtp configs
###
if [ -f $TARGET_CACHED_CONF_FILE_TMP ];then
    rm -f $TARGET_CACHED_CONF_FILE_TMP
fi

for key in "${KEYS[@]}"
do
    for i in {1..5}
    do
        val=`$MAILSERVER_BACKEND_BIN --getConfKeyVal ${key}`
        cmd_result=$?
        if [ $cmd_result -eq 0 ]; then
            break
        else
            print_log "smtp_change_hook exec failed for [${key}][${val}] - retry $i"
            sleep 1
        fi
    done
    if [ ! -z "${val}" ]; then
        synosetkeyvalue $TARGET_CACHED_CONF_FILE_TMP ${key} ${val}
		if [ ${key} == "account_type" ]; then
			account_type_change=true
		fi
    else
        print_log "smtp_change_hook get empty value for [${key}][${val}]"
    fi
done

mv $TARGET_CACHED_CONF_FILE_TMP $TARGET_CACHED_CONF_FILE

###
### if account type change, reload privilege
###
if [ $account_type_change ]; then
	${NOTIFY_DAEMON_BIN} --reload_priv

	${REGISTER_SCRIPT} register synomailclientd
fi

###
### start all pop3 fetchmail proccess
###
if [ "${SKIP_FETCHMAIL}" = "no" ]; then
    ${MANAGE_POP3_DAEMON} -a start
fi