FreeBSD + Postfix %26 Maildir + Courier-imap + Squirrelmail


小弟於 FreeBSD 上安装 Postfix + Courier-imap + Squirrelmail 邮件伺服器,采取 Maildir 的架构将使用者的信件分门别类的放置在 /home/User/Maildir 目录下,有别於过去传统所采用的 MailBox 方式,它是将 Mail 堆叠於 /var/spool/User 下。

过去我一直使用 MailBox 的方式将邮件堆叠到 /var/spool/User 上,这样的方式有个蛮大的缺点,就是当使用者的邮件空间容量扩大时,你想看看会发生甚麽状况?当单一档案超过 1G 时必定造成 Mial Server 整体效能的下降,以及接收邮件时若突然断线或中断时 Mail 又得重新再接收一次,看来这样的架构似乎已经不符合现今的需求,因此我改采 Maildir 的方式来架设 Mail Server,让每一封邮件都独立为单一档案存放於自己的家目录下,便可提高 Mail Server 的效能以及无限扩充邮件使用者的空间。

Courier-imap 是一套预设就支援 Maildir 的 pop3 及 imap 软体,它也同时支援 pop3s 及 imaps 这两个 Service,因此 Mail Server 在选择使用 Maildir 架构时,我们当然首选 Courier-imap 搂。

Environment :

硬体:i386 PC Intel P3 500
记忆体网卡:512M RAM
作业系统:FreeBSD 6.0 Release

Setp 1. Installing Postfix

#vi /etc/rc.conf # 拿掉预设启动 sendmail

sendmail_enable="NONE"

#cd /usr/ports/mail/postfix
#make install

#vi /usr/local/etc/postfix/main.cf

myhostname = ms2.ntut.idv.tw
mydomain = ntut.idv.tw
alias_maps = hash:/usr/local/etc/postfix/aliases # aliase 别名是一定要设的
home_mailbox = Maildir/ # 改用 Maildir 格式存放 mail 当开启这行时,若使用者收到第一封 mail 时会就会自动产生 /home/User/Maildir 目录及 new tmp cur 这三个资料夹

disable_vrfy_command = yes # 防止别人测试你的本机邮件用户是否存在
mailbox_size_limit = 2048000000 # mailbox 的空间大小限制 2G ,也可以使用 disk quota 来限制
smtpd_recipient_limit =300 # 对同一封邮件的收件人数目限制,最多同一封信件可发给 300 人
message_size_limit = 10240000 # 单一信件最大容量 10M

#postalias /usr/local/etc/postfix/aliases # 产生 aliases.db 档

#exit # 先跳出再进入 root 才可不指定路径直接 start postfix
$su
#posfix start # 手动开启 postfix 25 port 服务


Setp 2. Installing Courier-imap

#cd /usr/ports/mail/courier-imap # 因为采用 FreeBSD 本机上的帐号及密码认证所以不选其他种类的 AUTH
#make install

Options for courier-imap 4.0.6_1,1

[X] OPENSSL Build with OpenSSL support
[ ] FAM Build in fam support for IDLE command
[ ] TRASHQUOTA Include deleted mails in the quota
[ ] GDBM Use gdbm db instead of system bdb
[ ] IPV6 Build with IPv6 support
[ ] AUTH_LDAP LDAP support
[ ] AUTH_MYSQL MySQL support
[ ] AUTH_PGSQL PostgreSQL support
[ ] AUTH_USERDB Userdb support
[ ] AUTH_VCHKPW Vpopmail/vchkpw support

#cd /usr/local/etc/courier-imap
#cp pop3d.cnf.dist pop3d.cnf
#cp imapd.cnf.dist imapd.cnf # 设定 cert 的内容以方便我们产生 ssl 加密认证,如果不使用 imaps 993 port 或 pop3s 995 port 可省掉这个动作

RANDFILE = /usr/local/share/courier-imap/pop3d.rand

[ req ]
default_bits = 1024
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
prompt = no

The [ req_dn ] should look like:

[ req_dn ]
C=countryName Two letters!
ST=stateOrProvinceName
L=localityName
O=organizationName
OU=OrganizationalUnitName
CN=commonName
emailAddress=emailAddress

[ cert_type ]
nsCertType = server

#/usr/local/sbin/mkimapdcert # 产生安全登入认证的 imapd.pem 及 pop3d.pem 档放置於 /usr/local/share/courier-iamp 下
#/usr/local/sbin/mkpop3dcert

#vi /etc/rc.conf # 设定预设开机启动程式

postfix_enable="YES"
courier_authdaemond_enable="YES"
courier_imap_pop3d_enable="YES"
courier_imap_imapd_enable="YES"
courier_imap_imapd_ssl_enable="YES"
courier_imap_pop3d_ssl_enable="YES"

#reboot # 重开机

# sockstat -l4 # 测试所开启的服务

USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
root master 520 11 tcp4 *:25 *:*
root couriertcp 454 3 tcp4 *:110 *:*
root couriertcp 443 3 tcp4 *:995 *:*
root couriertcp 432 3 tcp4 *:143 *:*
root couriertcp 420 3 tcp4 *:993 *:*
root sshd 377 4 tcp4 *:22 *:*
root syslogd 264 6 udp4 *:514 *:*

#telnet localhost 110 # 测试 pop3 110 port 有无启动,及使用者可否登入
>user jim
>pass xxxx
>list
>stat
>quit
+OK Bye-bye.

Setp 3. Installing Apache2 + PHP4 +SquirrelMail

#cd /usr/ports/www/apache2 # 详细的设定就不再赘述请参考 Apache20 + MySQL41 + PHP4
#make install
#cd /usr/ports/www/php4
#make install
#cd /usr/ports/www/php4-extension
#make install

#cd /usr/ports/mail/squirrelmail
#make install

#cd /usr/local/www/data-dist
#ln -s ../squirrelmail webmail # 建立 webmail 连结档
#cd webmail
#./configure # 开始设定你的 config.php 档

SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages

D. Set pre-defined settings for specific IMAP servers

C Turn color on
S Save data
Q Quit

Command >>

http://ms2.ntut.idv.tw/webmail/ # 开个 Browse 输入上面的路径即可进入小松鼠 webmail 的登入画面

Reference:

http://ezine.daemonnews.org/200308/courier-imap.html
http://www.inter7.com/courierimap.html
http://www.asdf.dk/text/mbox2maildir.html
http://karmak.org/2003/courier-imap/
http://mutt.sourceforge.net/imap/

Add:

若出现 Webmail 无法登入可能是还未产生 /home/User/Maildir 也可以手动制作 User 的 Maildir/

# cd /home/User
# maildirmake Maildir
# chown -R User:User Maildir
# chmod -R 750 Maildir

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3