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

12/3/2006来源:Qmail人气:6891

Description :

小弟於 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


最後更新日:2006/08/18
最後更新:
http://freebsd.ntut.idv.tw/document/postfix_maildir_courier-iamp_squirrelmail.html