1.°²×°cyrus-sasl-2.x
ɾ³ýÒÔǰµÄrpm°üÒÔ¼°Ïà¹ØÄ¿Â¼
rpm -e --nodeps cyrus-sasl-2.1.10-4 cyrus-sasl-plain-2.1.10-4 cyrus-sasl-md5-2.1.10-4 cyrus-sasl-devel-2.1.10-4
rm -rf /usr/lib/sasl
rm -rf /usr/lib/sasl2
wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.21.tar.gz
./configure
--enable-plain --enable-cram --enable-digest --enable-login --enable-sql
--disable-anon --disable-ntlm --disable-gssapi --disable-krb4 --disable-otp --disable-srp --disable-srp-setpass
-with-authdaemond=/usr/local/courier-authlib/var/spool/authdaemon/socket
--with-mysql=/usr/local/mysql --with-mysql-includes=/usr/local/mysql/include/mysql --with-mysql-
libs=/usr/local/mysql/lib/mysql
make
make install
ln -s /usr/local/lib/sasl2 /usr/lib/sasl2
Ôö¼Ó"/usr/local/lib"µ½ÄãµÄ"/etc/ld.so.conf"£¬²¢Ö´ÐÐldconfigÃüÁî¡£
vi /usr/local/lib/sasl2/smtpd.conf
pwcheck_method: authdaemond
log_level: 3
mech_list: PLAIN LOGIN
authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket
×¢Ò⣬Õâ¸öÎļþµÄ±à¼²»Òª¶àдһ¸ö¿Õ¸ñ£¬·ñÔò»á³öÏÖsmtpÑéÖ¤²»¹ýµÄÎÊÌâ
2.±àÒëpostfix2.x
wget ftp://postfix.cn99.com/postfix/official/postfix-2.2.10.tar.gz
tar zvxf postfix-2.2.10.tar.gz
ÏÂÔØVDA²¹¶¡,ʹpostfixÖ§³Ö´ÅÅÌÏÞ¶î
wget http://web.onda.com.br/nadal/postfix/VDA/postfix-2.2.10-vda.patch.gz
gzip -d postfix-2.2.10-vda.patch.gz
chkconfig --level 2345 sendmail off
°²×°postfix֮ǰÌí¼ÓÏà¹ØµÄÓû§£¦Óû§×é
groupadd postfix -g 1000
groupadd postdrop
useradd postfix -u 1000 -g postfix -G postdrop
groupadd vmail -g 1001
useradd vmail -u 1001 -g 1001
mkdir /home/mail
chown vmail:vmail /home/mail
chmod -R 771 /home/mail
´ò²¹¶¡
patch -p1 < ../postfix-2.2.10-vda.patch
make tidy
make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH -I/usr/local/include/sasl' 'AUXLIBS=-
L/usr/local/mysql/lib/mysql -lmysqlclient -lm -lz -L/usr/local/lib -lsasl2'
make
make install
mv /etc/aliases /etc/aliases.old
ln -s /etc/postfix/aliases /etc/aliases
echo 'root: admin@example.com'>>/etc/postfix/aliases
/usr/bin/newaliases
touch /etc/postfix/mysql_virtual_alias_maps.cf
touch /etc/postfix/mysql_virtual_domains_maps.cf
touch /etc/postfix/mysql_virtual_mailbox_maps.cf
touch /etc/postfix/mysql_virtual_limit_maps.cf
vi /etc/postfix/main.cf
myhostname = mail.example.com # mail.example.comÊǰ²×°PostfixÈí¼þµÄÖ÷»úÃû
mydomain = example.com # example.comÊǰ²×°PostfixÈí¼þµÄÖ÷»úÃûÖеÄÓòÃû²¿·Ö
myorigin = $mydomain
mydestination =
alias_maps = hash:/etc/aliases
home_mailbox = Maildir/ # ʹÓÃMaildir×÷ΪÓʼþµÄ´æ´¢¸ñʽ
#=====================MySQL=====================
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_base = /home/mail
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 102400000
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 1001
virtual_uid_maps = static:1001
virtual_gid_maps = static:1001
virtual_transport = virtual
#"virtual_gid_maps"ºÍ"virtual_uid_maps"ÊÇpostfixÓû§µÄgidºÍuid£¬ "virtual_minimum_uid"Ó¦µ±¡Ü"virtual_uid_maps"£¬
"virtual_mailbox_limit"ÊÇÿ¸öÓÊÏäµÄ´óС¡£
#=====================Quota=====================
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_overquota_bounce = yes
#virtual_trash_count=yes
#virtual_trash_name=.Trash
#====================SASL======================
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname
#reject_rbl_client opm.blitzed.org,
#reject_rbl_client list.dsbl.org,
#reject_rbl_client bl.spamcop.net,
#reject_rbl_client sbl-xbl.spamhaus.org
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
#=============================================
mail_owner = postfix
mailq_path = /usr/bin/mailq
manpage_directory = /usr/local/man
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
sample_directory = /etc/postfix
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
unknown_local_recipient_reject_code = 550
±à¼cfÅäÖÃÎļþ
vi /etc/postfix/mysql_virtual_alias_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address
additional_conditions = AND active = '1'
£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½
vi /etc/postfix/mysql_virtual_domains_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = domain
select_field = description
where_field = domain
additional_conditions = AND active = '1'
£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½
vi /etc/postfix/mysql_virtual_mailbox_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
additional_conditions = AND active = '1'
£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½
vi /etc/postfix/mysql_virtual_limit_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = quota
where_field = username
additional_conditions = AND active = '1'
Æô¶¯ºÍֱͦpostfix·þÎñ
/usr/sbin/postfix start
/usr/sbin/postfix stop
3.±àÒëcourier-authlib
wget http://kent.dl.sourceforge.net/sourceforge/courier/courier-authlib-0.58.tar.bz2
tar jvxf courier-authlib-0.58.tar.bz2
./configure
--prefix=/usr/local/courier-authlib --without-stdheaderdir
--without-authuserdb --without-authpam --without-authldap --without-authpwd --without-authshadow --without-authvchkpw --without-authpgsql --without-authcustom
--with-authmysql --with-mysql-libs=/usr/local/mysql/lib/mysql --with-mysql-includes=/usr/local/mysql/include/mysql
--with-redhat
Ò»¸ö¹Ø¼üµã£º
Èç¹ûcourier-authlib°²×°µ½·Ç±ê׼λÖã¨ÀýÈç°²×°µ½/usr/localÏ£©£¬Ò»¶¨¼ÇµÃÔÚ./configureʱÔö¼Ó--without-stdheaderdir£¬ÕâÑùÒÔºóÔÚ±àÒëCourier-IMAPºÍmaildropµÄʱºò£¬²»ÓÃÌØ±ðÖ¸¶¨courier-authlibµÄ¿âÎļþλÖÃ
make
make install
make install-configure
Ôö¼Ó"/usr/local/courier-authlib/lib/courier-authlib"µ½ÄãµÄ"/etc/ld.so.conf"£¬²¢Ö´ÐÐldconfigÃüÁî¡£
chmod +x /usr/local/courier-authlib/var/spool/authdaemon
vi /usr/local/courier-authlib/etc/authlib/authdaemonrc ¿ÉÒÔ²»ÐÞ¸Ä
authmodulelist="authmysql"
authmodulelistorig="authmysql"
daemons=10
vi /usr/local/courier-authlib/etc/authlib/authmysqlrc
MYSQL_SERVER localhost
MYSQL_USERNAME postfix
MYSQL_PASSWORD yourpassword
MYSQL_SOCKET /tmp/mysql.sock
MYSQL_DATABASE postfix
MYSQL_USER_TABLE mailbox
MYSQL_CRYPT_PWFIELD password
MYSQL_UID_FIELD 1001
MYSQL_GID_FIELD 1001
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD '/home/mail/' #ÉèÖÃpostfix´æ´¢ÓʼþµÄĿ¼
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD maildir
MYSQL_QUOTA_FIELD quota
MYSQL_WHERE_CLAUSE active='1'
Æô¶¯courier-authlib
/usr/local/courier-authlib/sbin/authdaemond start
4.±àÒë°²×°°²×°Courier-IMAP
wget http://surfnet.dl.sourceforge.net/sourceforge/courier/courier-imap-4.1.0.tar.bz2
tar jvxf courier-imap-4.1.0.tar.bz2
./configure --prefix=/usr/local/courier-imap --with-redhat --enable-unicode --disable-root-check --with-trashquota --without
-ipv6 CPPFLAGS='-I/usr/local/courier-authlib/include' COURIERAUTHCONFIG='/usr/local/courier-authlib/bin/courierauthconfig'
CPPFLAGS='-I/usr/local/courier-authlib/include' Èç¹û±àÒëcourier-authlibûÓа²×°ÔÚĬÈÏ·¾¶£¬±ØÐëÖ¸¶¨Õâ¸ö£¬Èç¹û֮ǰ±àÒëcourier-authlib¼ÓÁË--without-stdheaderdir£¬¾Í²»ÐèÒªÖ¸¶¨ÁË
make
make install
cp /usr/local/courier-imap/etc/imapd.dist /usr/local/courier-imap/etc/imapd
cp /usr/local/courier-imap/etc/imapd-ssl.dist /usr/local/courier-imap/etc/imapd-ssl
cp /usr/local/courier-imap/etc/pop3d.dist /usr/local/courier-imap/etc/pop3d
cp /usr/local/courier-imap/etc/pop3d-ssl.dist /usr/local/courier-imap/etc/pop3d-ssl
ÅäÖÃCourier-IMAP£¬ÎªÓû§Ìṩpop3·þÎñ£º
vi /usr/local/courier-imap/etc/pop3d
POP3DSTART=yes
×¢£ºÈç¹ûÄãÏëΪÓû§ÌṩIMAP·þÎñ£¬¿ÉÒÔÔÚ"/usr/local/courier-imap/etc/imapd"ÎļþÖÐÉèÖÃ"IMAPDSTART=yes"¡£
cp courier-imap.sysvinit /etc/rc.d/init.d/imapd
chmod 755 /etc/rc.d/init.d/imapd
chkconfig --add imapd
5.±àÒë°²×°postfixadmin
wget http://high5.net/postfixadmin/download.php?file=postfixadmin-2.1.0.tgz
tar -zxvf postfixadmin-2.1.0.tgz
°Ñ½âѹµÄĿ¼¸ÄÃû¿½±´µ½Ä¬ÈϵÄwebĿ¼Ï£¬±ÈÈç /var/www
cd /var/www/postfixadmin
$ chmod 640 *.php *.css
$ cd /var/www/postfixadmin/admin
$ chmod 640 *.php .ht*
$ cd /var/www/postfixadmin/images/
$ chmod 640 *.gif *.png
$ cd /var/www/postfixadmin/languages/
$ chmod 640 *.lang
$ cd /var/www/postfixadmin/templates/
$ chmod 640 *.tpl
$ cd /var/www/postfixadmin/users/
$ chmod 640 *.php
µ¼ÈëÊý¾Ý¿â
mysql -uroot -p < DATABASE_MYSQL.TXT
·ÃÎÊ£º
http://ÓòÃû/postfixadmin/
6.FAQ£º
1.³öÏÖauthentication error: Input/output error´íÎóµÄʱºò
¹À¼ÆÊDzéѯmysqlʱ£¬authdaemond³ö´íÁË¡£¾ßÌåÒª´ò¿ªauthdaemonrcÀïµÄ£º
DEBUG_LOGIN=2 ÔÀ´Ä¬ÈÏÊÇ0
È»ºó¿´¿´/var/log/message»ò/var/log/maillog ÔÚÈÏ֤ʧ°ÜʱÓÐʲôÌáʾ¡£¸ù¾ÝÌáʾȥ¼ì²éÎÊÌâµ½µ×³öÔÚÄĶù
2.warning: SASL authentication failure: cannot connect to Courier authdaemond: Permission denied
¼ì²é authdaemondµÄsocketËùÔÚĿ¼¼°Æä¸¸Ä¿Â¼µÄÊôÐÔÊÇ·ñ¶Ôsmtpd¿É¶Á¡£Èç¹û²»¿É¶ÁÔò³öÏÖÕâ¸öÎÊÌ⣨permissionµÄÎÊÌ⣩¡£
3.warning: SASL authentication failure: cannot connect to Courier authdaemond: No such file or directory
¼ì²é/usr/local/lib/sasl2/smtpd.conf£¬¿´¿´ÊÇ·ñÓжàдһ¸ö¿Õ¸ñ£¬Ò»°ã¿Õ¸ñºÜÄÑÖ±¹ÛµÄ·¢ÏÖ
| ×ÔÓÉ¹ã¸æÇø |
| ¡¡ |