- 论坛徽章:
- 0
|
- #/bin/bash
- ##########################################################################
- # VPOPMAIL 5.4.10 中文编译安装脚本
- # 2005-05-14 modi by ZhenZhong Zhong
- # EMAIL: zzz@wxxhr.cn zzz@wxhrm.com
- ##########################################################################
- ##########################################################################
- # 这个脚本直接复制成setup.vpopmail.sh文件放到VPOPMAIL源代码目录下
- # 直接运行 setup.vpopmail.sh 即可编译安装
- # 运行 setup.vpopmail.sh clear 则删除安装
- # 这个版本已经知的一个BUG
- # 使用PostgreSQL数据库时,如果打开SQL_LOG
- # 则 vlog表不能创建 查看 vpgsql.h 发现是创建索引的
- # 命令格式不对。把他封掉就OK了。原文件vpgsql.h修改如下
- #
- # 229 #ifdef ENABLE_SQL_LOGGING
- # 230 #define VLOG_TABLE_LAYOUT "id serial, \
- # 231 userid char(32), passwd CHAR(32), \
- # 232 domain CHAR(64), logon VARCHAR(200), \
- # 233 remoteip char(18), message VARCHAR(255), \
- # 234 timestamp bigint default 0 NOT NULL, error INT "
- # 235 /*
- # 236 INDEX user_idx (userid), \
- # 237 INDEX domain_idx (domain), INDEX remoteip_idx (remoteip), \
- # 238 INDEX error_idx (error), INDEX message_idx (message)"
- # 239 */
- # 240 #endif
- ###########################################################################
- #安装路径
- INSTALLDIR="/home/vpopmail"
- #安装系统组名
- GROUP="vchkpw"
- #安装系统用户名
- USER="vpopmail"
- #qmail安装路径
- QMAILDIR="/var/qmail"
- #你的域名
- DOMAIN="domain.com"
- if [ "$1" == "clear" ] ; then
- echo "make clean ..."
- make clean
- echo "Delete System User vpopmail ..."
- userdel $USER
- echo "Delete System Group vchkpw ..."
- groupdel $GROUP
- echo "Delete Vpopmail Install File ..."
- rm -fr $INSTALLDIR
- echo " "
- echo "Delete Vpopmail Finished."
- fi
- #添加vpopmail组
- echo "Add group vchkpw ..."
- groupadd $GROUP -g 89
- #添加vpopmail用户
- echo "Add user vpopmail ..."
- useradd $USER -d $DOMAIN -u 89 -g $GROUP
- #安装路径
- PREFIX="--prefix=$INSTALLDIR"
- #附加包含的头文件路径 这里我使用PostgreSQL数据库
- INC_DIR="--enable-incdir=/home/postgres/include"
- #附加包含的库文件路径 这里我使用PostgreSQL数据库
- LIB_DIR="--enable-libdir=/home/postgres/lib"
- #是否允许漫游用户通过邮件服务器转发邮件:
- #支持漫游用户的原理是当某个漫游用户使用pop3取信以后,
- #则在某段时间内允许该地址通过邮件服务器收发邮件。
- #RO_USERS="--enable-roaming-users"
- RO_USERS="--disable-roaming-users"
- #漫游失效时间 默认为180分钟 即三个小时
- CLEAR_MIN="--enable-relay-clear-minutes=180"
- #写入系统日志级别:Log to syslog: n=nothing, e=errors only (default),
- # y=all attempts, p=errors with passwords, v=verbose
- # (all attempts, with passwords).
- LOG="--enable-logging=v"
- #是否使用系统认证 即是否使用 /etc/passwd /etc/shadow 系统文件进行认证
- #如果你使用系统帐户进行认证则开启。
- #如果使用数据库认证则该选项应关闭。
- #PASSWD="--enable-passwd"
- PASSWD="--disable-passwd"
- #是否使用加密密码,打开的话就为加密密码,默认使用加密密码。
- #如果数据库在本地的话使用明文密码没什么问题。嘿嘿效率高嘛。
- #使用明文密友可以减轻CPU压力
- #CLEAR_PASSWD="--disable-clear-passwd"
- CLEAR_PASSWD="--enable-clear-passwd"
- #是否使用VPOPMAIL的邮箱大小控制,默认为打开。
- #如果你想使用操作系统自带的大小控制,则关闭他。
- DOMAIN_QUOTAS="--enable-domainquotas"
- #用户认证方式
- #默认为cdb 可以使用mysql、pgsql、ldap、oracle、sybase等数据库或者
- #文件方式 即自行创建 用户与密码文件。
- #当然编译时必须包含他们使用的头文件与库文件。
- AUTH_MODULE="--enable-auth-module=pgsql"
- #是否打开认证日志
- AUTH_LOG="--enable-auth-logging"
- #使用数据库记录认证日志,支持mysql或者pgsql数据库。
- SQL_LOG="--enable-sql-logging"
- #是否把邮件别名控制文件放入MySQL数据库
- VALIAS="--disable-valias"
- #是否使用MySQL的limits来替换.qmailadmin-limits文件.
- MYSQL_LIMITS="--disable-mysql-limits"
- #vpopmail有一个密码自学习功能,就是在建立信箱时,密码设为空,
- #就会从客户端学习密码,也就是第一个pop3连上来的密码,
- #会被纪录并在以后的认证中使用。
- #可以通过察看vpasswd文件来看到这个过程。
- #在编译vpopmail时通过 --enable-learn-passwords=y 来打开这个功能。
- #遗憾的是这个功能只能在新建邮件账号时使用,在修改密码时不能用。
- LEARN_PASSWD="--enable-learn-passwords=n"
- #在虚拟域中是否允许通过反向IP地址查找虚拟域名
- IP_ALIAS="--enable-ip-alias-domains=n"
- # vpopmail运行时使用的用户
- USER="--enable-vpopuser=$USER"
- # vpopmail运行时使用的组
- GROUP="--enable-vpopgroup=$GROUP"
- #qmail安装路径
- QMAIL="--enable-qmaildir=$QMAILDIR"
- #是否使用散列算法设置用户邮件目录
- #如果你的用户非常多则开启此选项。
- #BIG_DIR="--enable-users-big-dir"
- BIG_DIR="--disable-users-big-dir"
- #所有虚拟域用户在一个数据库表中
- #如果关闭,则一个虚拟域一张表, 该选项仅支持MYSQL与PostgreSQL数据库。
- #推荐在虚拟域多而且用户也比较多的情况下,同时认证数据库为
- #MYSQL或者PostgreSQL的时候,打开此选项,可提高数据库效率。
- #ONE_SQL_TAB="--disable-many-domains
- ONE_SQL_TAB="--enable-many-domains"
- #使用DES crypt()算法替换MD5算法来加密密码
- ENCRY_PASSWD="--disable-md5-passwords"
- #是否使用文件锁, 默认为打开文件锁。
- #FILE_LOCK="--disable-file-locking"
- FILE_LOCK="--enable-file-locking"
- #是否使用文件即时写入磁盘功能,默认为关闭。
- #如果打开,会增加磁盘的读写次数。
- #FILE_SYNC="--enable-file-sync"
- FILE_SYNC="--disable-file-sync"
- #是否强制把进来的邮件先放到一个临地目录下, 形成搜索列表,
- #然后再进行投递。
- #如果收发邮件非常多的话,就打开吧。默认为关闭
- #注:这个选项不知我理解的是不是正确。如果有错误,请告之。
- #SEEK="--disable-make-seekable"
- SEEK="--enable-make-seekable"
- COMP="./configure $PREFIX $INC_DIR $LIB_DIR $RO_USERS $CLEAR_MIN"
- COMP="$COMP $LOG $PASSWD $CLEAR_PASSWD $DOMAIN_QUOTAS"
- COMP="$COMP $AUTH_MODULE $AUTH_LOG $SQL_LOG $VALIAS $MYSQL_LIMITS"
- COMP="$COMP $LEARN_PASSWD $IP_ALIAS $USER $GROUP $QMAIL $BIG_DIR"
- COMP="$COMP $ONE_SQL_TAB $ENCRY_PASSWD $FILE_LOCK $FILE_SYNC $SEEK"
- #清除编译环境
- make clean
- #设置编译环境
- $COMP
- #编译
- make
- #安装
- make install-strip
- #设置SMTP规则,关闭外部RELAY 只允许本机RELAY
- echo '127.0.0.1:allow,RELAYCLIENT=""' >; $INSTALLDIR/etc/tcp.smtp
- tcprules $INSTALLDIR/etc/tcp.smtp.cdb $INSTALLDIR/etc/tcp.smtp.tmp < $INSTALLDIR/etc/tcp.smtp
- #设置默认域名
- echo $DOMAIN >; $INSTALLDIR/etc/defaultdomain
- #设置邮箱容量达到90%的警告信息
- echo "From: 邮箱管理员
- Reply-To: postmaster@domain.com
- To: 邮箱用户
- Subject: 邮箱空间警告
- Mime-Version: 1.0
- Content-Type: text/html; charset=gb2312
- Content-Transfer-Encoding: base64
- 您的邮箱空间已经达到90%.如果想继续使用,请删除一些信件.
- 如果需要帮助,请联系邮箱管理员:
- Email : postmaster@domain.com
- " >; $INSTALLDIR/domains/.quotawarn.msg
- # 设置邮箱已满的警告信息
- echo "邮件被拒绝,用户的邮箱空间已满." >; $INSTALLDIR/domains/.over-quota.msg
- echo ""
- echo "Vpopmail Install Finshed."
复制代码 |
|