使用Postfix构建基于FreeBSD的邮件系统

0、更新ports
pkg_add –r cvsup
rehash
cvsup –h cvs.FreeBSDchina.org /usr/share/examples/cvsup/ports-supfile
1、安装软件
①安装cyrus-sasl2
sasl2是smtp验证所需要的软件包 , 由于postfix安装时采用默认配置 , 使得sasl不支持courIEr-authdaemond , 因此需要首先用指定的选项进行安装 。
cd /usr/ports/security/cyrus-sasl2
make WITH_AUTHDAEMON=yes install clean
②安装expect
cd /usr/ports/lang/expect
make install clean
③安装postfix , 安装时选中[SASL2]、[MySQL]、[VDA] , sasl2用于smtp验证 , mysql用于存放数据表 , vda用于支持虚拟投递 。
cd /usr/ports/mail/postfix
make install clean
④安装courier-imap , 通过make config加上对mysql的支持 。
cd /usr/ports/mail/courier-imap
make config
make install clean
⑤安装clamav
cd /usr/ports/security/clamav
make install clean
⑥安装amavisd , 安装过程中会自动把spamd也安装上 。在make config中加入mysql支持 。
cd /usr/ports/security/amavisd-new
make config
make install clean
⑦安装apache 。安装完成后编辑httpd.conf将主目录设置为/usr/local/www
cd /usr/ports/www/apache22
make install clean
⑧安装php 。更新ports后的php安装方式有所变化 , 首先在make config需要选中[Apache]以编译apache模块 , 安装完成后在httpd.conf中修改2处配置:
a、在DirectoryIndex中加入index.php
b、加入AddType application/x-httpd-php .php
cd /usr/ports/lang/php4
make config
make install clean
⑨安装php4-extensions 。根据需要选择模块 , 保证[MYSQL]、[PCRE]、[SESSION]被选中 。
cd /usr/ports/lang/php4-extensions
make config
make install clean
⑩安装postfixadmin 。安装完成后将网页移动至/usr/www/data/
cd /usr/ports/mail/postfixadmin
make install clean
mv /usr/local/www/postfixadmin /usr/local/www/data/
○11安装squirrelmail
cd /usr/ports/mail/squirrelmail
make install clean
至此 , 所需软件全部安装完毕 , 下面将依次进行配置 。
2、配置文件
①配置sasl
ee /usr/local/lib/sasl2/smtpd.conf
pwcheck_method: authdaemond
log_level: 3
mech_list: PLAIN LOGIN
authdaemond_path: /var/run/authdaemond/socket
②配置mysql数据库
chmod –R mysql:mysql /var/db/mysql
cd /usr/local/bin/
./mysql_install_db
cd /usr/local/libexec
./mysqld –user=mysql&
cd /usr/local/www/postfixadmin
mysql –uroot –p < DATABASE_MYSQL.TXT
③配置postfix
使用和apache一样的用户来读取邮件目录 , 因为apache用户为www , id:80 , 所以要注意/usr/local/etc/postfix/main.cf中的用户id 。
mkdir –p /usr/local/virtual
chmod –R www:www /usr/local/virtual
ee /usr/local/etc/postfix/main.cf
在最后添加:
#======= BASE ==============
#myhostname =
#mydomain = example.com
home_mailbox = maildir/
#mydestination = $myhostname
#local_recipIEnt_maps =
#======= MYSQL =============
virtual_gid_maps = static:80
virtual_mailbox_base = /usr/local/virtual
virtual_uid_maps = static:80
virtual_minimum_uid = 80
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql/virtual_alias_maps.cf
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql/virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql/virtual_mailbox_maps.cf
#======= Quota ============
message_size_limit = 5242880
virtual_mailbox_limit_inbox = no
virtual_mailbox_limit_override = yes
virtual_maildir_extended = yes
virtual_create_maildirsize = yes
virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysql/virtual_mailbox_limit_maps.cf

推荐阅读