背景说明:这个邮件系统是我于2008年在某公司打工时期的一个技能考核科目,因为有邮件前端服务器(邮件网关)担负反垃圾邮件和杀毒,所以搭建时无需anti spam 和virus功能就能作为生产服务器上线;如果在木有邮件网关的环境下这个邮件系统只能作为实验性质,提供基本邮件功能,作教学练手之用。
=======================正文=======================
◆需求:
1. 要免費的
2. 要能轉移現在的 /etc/passwd 檔
3. 要能用 web Mail
4. 建在 BSD 上
◆实现方案:
为此选择的如下方案来搭建邮件系统:
---------------------------------------
OS: FreeBSD 6.3 Release
MTA: Postfix 2.5.4
MDA: Dovecot 1.1.3
SMTP AUTH: Dovecot SASL for Postfix
Web Server: Apache 2.2.9
Webmail: Openwebmail 2.53
---------------------------------------
以上皆为免费的开源软件,因为有功能完善的邮件网关,本邮件系统无需添加anti-spam/virus等配置,力求配置简洁和运行高效,使用系统账户进行登录验证,使用unix传统的mbox邮箱格式;POP/IMAP和SASL皆由dovecot担任;最重要的SMTP部分选用安全可靠灵活高效且兼容sendmail的Postfix;webmail选用在操作与使用方便上超过M$ Outlook 的 Openwebmail。整个邮件系统所需安装的软件达到最少,保持系统轻载高效:
代码: 全选
mail# pkg_info
apache-2.2.9_5 Version 2.2.x of Apache web server with prefork MPM.
autoconf-2.62 Automatically configure source code on many Un*x platforms
autoconf-wrapper-20071109 Wrapper script for GNU autoconf
dovecot-1.1.3_1 Secure and compact IMAP and POP3 servers
expat-2.0.1 XML 1.0 parser written in C
gettext-0.17_1 GNU gettext package
gmake-3.81_3 GNU version of 'make' utility
help2man-1.36.4_2 Automatically generating simple manual pages from program o
libiconv-1.11_1 A character set conversion library
libtool-1.5.26 Generic shared library support script
m4-1.4.11,1 GNU m4
openwebmail-2.53 A webmail system designed to manage big mail folder files e
p5-Authen-PAM-0.16_1 A Perl interface to the PAM library
p5-MIME-Base64-3.07 Perl5 module for Base64 and Quoted-Printable encodings
p5-Quota-1.6.2 Perl module that provides access to filesystem quotas
p5-Text-Iconv-1.5 Perl interface to iconv() codeset conversion function
p5-gettext-1.05_2 Message handling functions
pcre-7.7_1 Perl Compatible Regular Expressions library
perl-5.8.8_1 Practical Extraction and Report Language
postfix-2.5.4,1 A secure alternative to widely-used Sendmail
◎1.最小化安装Freebsd 6.3 Release
因为所有收下的信件将会依照相关设定保存在/var/mail,所以/var 应分配较大的空间,最低不少于20GB。(如需配置成把信件放入用户的主目录,可创建/home 并分配较大空间。)
OS安装完毕,设置root口令、添加一个wheel组账号、设定网络参数、开启sshd后,照例要更新ports:
代码: 全选
csup -gL2 /usr/share/examples/cvsup/ports-supfile -h cvsup.freebsdchina.org
或者 portsnap fetch && portsnap update
◎2.禁用系统自带的sendmail
代码: 全选
#vi /etc/rc.conf
代码: 全选
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
代码: 全选
#vi /etc/periodic.conf
代码: 全选
daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"
代码: 全选
#cd /usr/ports/mail/postfix
#make config
代码: 全选
#make install clean
#rehash
在 /etc/rc.conf 中添加
代码: 全选
postfix_enable="YES"
代码: 全选
#cp /usr/local/sbin/sendmail /usr/sbin/sendmail
代码: 全选
#hostname
mail.szsn.net
代码: 全选
#postconf -e myhostname=mail.szsn.net
代码: 全选
#postfix start
postfix/postfix-script: starting the Postfix mail system
postfix的配置文件都在 /usr/local/etc/postfix/ 目录下,最重要的两个文件是 master.cf 与 main.cf,每次修改文件后必须重新加载postfix才生效
代码: 全选
#postfix reload
把
代码: 全选
mail_spool_directory = /var/spool/mail
代码: 全选
mail_spool_directory = /var/mail
然后注释掉 home_mailbox = Mailbox ,否则信件将会放到用户主目录下。
mbox与maildir的选择可能需视乎实际情况来测试,但就MDA的投递效率而言,mbox较快。
到此,postfix基本配置完成,reload & test:
代码: 全选
# telnet mail.szsn.net 25
Trying 192.168.1.167...
Connected to mail.szsn.net.
Escape character is '^]'.
220 mail.szsn.net ESMTP Postfix