详解Linux下的postfix安装
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please Tidy your mailbox and try again later.
virtual_overquota_bounce = yes
##############END--############################################
添加支持虚拟域和虚拟用户所需要的配置文件
[root@mail2 postfix]# vi mysql_virtual_domains_maps.cf
user = extmail
password = extmail
hosts = localhost
dbname = extmail
table = domain
select_field = description
where_field = domain
~
[root@mail2 postfix]# vi mysql_virtual_mailbox_limit_maps.cf
user = extmail
password = extmail
hosts = localhost
dbname = extmail
table = mailbox
select_field = quota
where_field = username
[root@mail2 postfix]# vi mysql_virtual_mailbox_maps.cf
user = extmail
password = extmail
hosts = localhost
dbname = extmail
table = mailbox
select_field = maildir
where_field = username
[root@mail2 postfix]# vi mysql_virtual_alias_maps.cf
user = extmail
password = extmail
hosts = localhost
dbname = extmail
table = alias
select_field = goto
where_field = address
~
四个配置文件
第九,安装courier-authlib
Ok了,下面开始安装
courier-authlib
[root@mail2 courier-authlib-0.63.0]# ./configure --prefix=/usr/local/courier-authlib --sysconfdir=/etc --without-authpam -without-authldap --without-authpwd --without-authshadow --without-authvchkpw --without-authpgsql --with-authmysql --with-mysql-libs=/usr/local/mysql/lib/mysql -with-mysql-includes=/usr/local/mysql/inculde/mysql --with-redhat --with-authmysqlrc=/etc/authmysqlrc --with-authdaemonrc=/etc/authdaemonrc CFLAGS="-march=x86-64 -O2 -fexpensive-optimizations" CXXFLAGS="-march=x86-64 -O2 -fexpensive-optimizations"
其中有一个error,
提示找不到expect not found - will not be able to change passwds 导致configure: error: --with-authmysql specified but no mysqlclient.so
解决办法:
[root@mail2 lib]# cp /usr/local/mysql/lib/libmysqlclient.so /usr/lib/libmysqlclient.so
之后重新编译即可过去
./configure 过后,执行make提示authmysql.h:8:19: 错误:mysql.h:没有那个文件或目录
authmysql.h:9:20: 错误:errmsg.h:没有那个文件或目录
make[2]: *** [authmysql.lo] 错误 1
Vi authmysql.h的文件
Mysql/mysql.h
保存即可
[root@mail2 var]# chmod -R 755 /usr/local/courier-authlib/var/spool/authdaemon/
进入到目录/etc/
[root@mail2 etc]# cp authdaemonrc.dist authdaemonrc
[root@mail2 etc]# cp authmysqlrc.dist authmysqlrc
编辑文件authdaemonrc
authmodulelistorig="authmysql"
daemons=10
authmodulelist="authmysql"
编辑文件authmysql
MYSQL_SERVER 127.0.0.1
MYSQL_USERNAME extmail
MYSQL_PASSWORD extmail
MYSQL_SOCKET /data/mysql/mysql.sock 数据库的监听文件
MYSQL_PORT 3306 数据库的端口
MYSQL_DATABASE extmail 数据库
MYSQL_USER_TABLE mailbox 数据库的表
MYSQL_CRYPT_PWFIELD password 加密的字段
MYSQL_UID_FIELD 503 邮件服务的属主和属组
MYSQL_GID_FIELD 503
MYSQL_HOME_FIELD concat('/var/mailbox/',maildir)
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD concat('/var/mailbox/',maildir)
ourier-authlib 的库文件搜索路径,并启动courier-authlib
[root@mail2 postfix]# /usr/local/courier-authlib/sbin/authdaemond start
[root@mail2 postfix]# echo "/usr/local/courier-authlib/lib/courier-authlib/lib" >> /etc/ld.so.conf
[root@mail2 postfix]# ldconfig -v
第十安装IMAP服务,
安装imap服务
[root@mail2 postfix]# tar jxvf courier-imap-4.8.0.tar.bz2
[root@mail2 ~]# ./configure --prefix=/usr/local/courier-imap --with-redhat --enable-unicode --disable-root-check --with-openssl --with-trashquota --without-ipv6 CPPFLAGS='-I/usr/local/courier-authlib/include' LDFLAGS='-L/usr/local/courier-authlib/lib/courier-authlib' COURIERAUTHCONFIG='/usr/local/courier-authlib/bin/courierauthconfig'
Make && make install
进入到/usr/local/courier-imap/etc下面,去复制imap启动需要的配置文件
[root@mail2 etc]# cp imapd-ssl.dist imapd-ssl
[root@mail2 etc]# cp imapd.dist imapd
[root@mail2 etc]# cp pop3d.dist pop3d
[root@mail2 etc]# cp pop3d-ssl.dist pop3d-ssl
配置courier-imap ,为用户提供服务的类型,该处为用户提供的是pop3d 服务,如果为用户提供IMAP 服务,只需要修改对应的选项
IMAPDSTART=YES
[root@mail2 etc]# vi pop3d
POP3DSTART=YES
将NO改为YES
为虚拟用户创建邮箱所在目录,并修改权限.把其所属主改为postfix
[root@localhost mail]# mkdir -pv /var/mailbox/
