歡迎您光臨本站 註冊首頁
 安裝環境是 CentOS 5.1,分區的時候 對 /var/spool/postfix 和 /var/vmail 進行了單獨分區。

 
 /var/spool/postfix 是postfix存儲隊列的地方, /var/vmail 是用來存儲虛擬賬號郵件的。
 
 CentOS提供了很方便的yum在線安裝,我的基本原則是非重要、對版本不敏感的模塊盡量用yum安裝,郵件系統主要模塊則用源碼編譯安裝。
 
 首先用yum安裝的模塊有: mysql mysql-server mysql-devel db4-devel openssl gcc libxml2 libxml2-devel gcc-c++
 
 幾個模塊都需要用到PCRE, 前面說的 gcc-c++ 是安裝PCRE必須的。
 下載安裝 RCRE:
 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.8.tar.gz
 
 先說明一下幾個模塊的搭配。
 
 MTA 用的是 postfix的最新版本 postfix-2.5.5。
 
 web模塊是最先需要確定的,因為它決定了mysql表結構,這裡選用國產的extmail,其他的根據extmail的需要倒推來確定。
 
 webmail 使用 extmail-1.0.5 ,web管理模塊用 extman-0.2.5
 
 最新版本的extmail對maildrop的自動回復、轉發等提供了很好的支持,所以MDA採用最流行的maildrop(2.0.4 )
 
 這裡面簡單說一下為什麼要用maildrop。
 
 對虛擬用戶投遞的支持,postfix自帶了一個投遞代理(MDA):virtual
 
 virtual投遞代理在 master.cf 里描述為:
 virtual   unix  -       n       n       -       -       virtual
 
 如果我們在main.cf 里 設置 virtual_transport = virtual ,就表示對於包含在 virtual_mailbox_domains 域名里的郵件,都使用virtual進行投遞。
 
 postfix自帶的virtual只提供了最基本的QUOTA功能,如果想使用更複雜的功能,如自動轉發,自動回復,郵件自定義過濾等,就需要換成更高級的MDA。
 
 當然可選擇的MDA有很多種,比如 procmail, maildrop 等。我這裡選用maildrop,為啥?大家都用這個。。。
 
 用戶信息存儲方式也有很多可選的,比如mysql,ldap等。這裡選mysql,原因是各個模塊,包括extmail等對這個支持最好最方便最簡單。
 
 maildrop 在投遞郵件的時候,需要確定一些數據,比如收件用戶的Maildir的路徑,保存郵件用的uid,gid,郵箱容量等,這些數據需要maildrop的同門師兄 courier-authlib 來提供,所以要先吧courier-authlib裝好。
 
 下面要說的是SMTP 的 SASL認證(這個說來話長,有空補上)。postfix的模塊化設計在這裡也體現出比qmail高明的地方。
 
 postfix 2.3 以後sasl支持三種模塊:
   Cyrus SASL version 1
   Cyrus SASL version 2
   Dovecot protocol version 1
 
 網上大部分的文章都是講用 Cyrus SASL 2(並用Cyrus IMAP 提供POP3/IMAP服務),本文採用後起新秀 Dovecot 做為 sasl模塊,Dovecot同時提供 POP3/IMAP 服務。
 
 Dovecot使用最新的dovecot-1.1.4 。
 
 開始安裝!
 
 下載 postfix-2.5.5.tar.gz
 
 postfix安裝的是需要指定幾個專門的用戶和組,先創建
 
 #groupadd -g 2001 postfix
 #useradd -g postfix -u 1001 -s /sbin/nologin -M postfix
 #groupadd -g 2002 postdrop
 #useradd -g postdrop -u 2002 -s /bin/false -M postdrop
 
 編譯
 #make makefiles CCARGS='-DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\"dovecot\" \
   -DHAS_PCRE -DHAS_MYSQL \
   -I/usr/include/ -I/usr/local/include -I/usr/include/mysql/' \
   AUXLIBS='-L/usr/local/lib -L/usr/lib/mysql -lmysqlclient -lpcre'
 #make
 #make install
 
 make install的提問全部回車默認。
 注意參數
 -DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\"dovecot\"
 表示啟用SASL身份認證,並默認使用dovecot。
 mysql的幾個路徑可以根據實際情況做修改,我這裡的目錄都是yum默認安裝的。
 
 
 先導入mysql表結構和數據。
 
 下載extman-0.2.5.tar.gz
 解開後進入 docs目錄
 
 
 建庫建表:
 #mysql -u root -p < extmail.sql
 (注意extmail.sql里配置的資料庫,用戶名,口令都是extmail)
 
 導入初始數據:
 #mysql -u root -p < init.sql
 (先吧 init.sql 文件里的 extmail.org 改成你自己的域名)
 
 把目錄下 mysql_*.cf 全部拷貝至 /etc/postfix
 # cp mysql_*.cf /etc/postfix/
 
 下載 dovecot-1.1.4.tar.gz
 
 #./configure --prefix=/usr/local/dovecot --sysconfdir=/etc/dovecot --with-sql --with-sql-drivers --with-mysql --with-ssl=openssl
 #make
 #make install
 
 註:dovecot的安裝參考了javaeye unixboy的文章,略有改動
 
 配置dovecot.conf
 #cd /etc/dovecot
 #cp dovecot-example.conf dovecot.conf
 #vi dovecot.conf
 
 base_dir=/var/run/dovecot
 protocols=imap imaps pop3 pop3s
 listen=*
 disable_plaintext_auth = no
 ssl_disable = yes
 mail_location = maildir:/var/vmail/%d/%n/Maildir
 pop3_uidl_format=%08Xu%08Xv
 
 auth default {
   ...
   mechanisms = plain login digest-md5 cram-md5
         
   # 去掉註釋
   passdb sql {
           args = /etc/dovecot/dovecot-sql.conf
   }
   ...
   # 去掉註釋
   userdb sql {
           args = /etc/dovecot/dovecot-sql.conf
   }
   ...
   socket listen {
     ...
     client {
       path = /var/spool/postfix/private/auth
       mode = 0660
       user = postfix
       group = postfix
     }
   }
 }
 
 
 
 配置dovecot-sql.conf
 #cp dovecot-sql-example.conf dovecot-sql.conf
 #vi dovecot-sql.conf
 driver = mysql
 connect =  host=localhost dbname=extmail user=extmail password=extmail
 default_pass_scheme = MD5-CRYPT
 
 password_query = SELECT username AS user, password AS password \
    FROM mailbox WHERE username = '%u' AND active = '1'
 
 user_query = \
   SELECT maildir as home,2001 as uid ,2001 as gid \
   FROM mailbox WHERE username='%u' and active='1'
 
 
 
 創建符號鏈接
 #ln -s /usr/local/dovecot/sbin/dovecot /usr/bin/dovecot
 
 繼續配置 postfix
 
 #mv /etc/aliases /etc/aliases.old
 #ln -s /etc/postfix/aliases /etc/aliases
 #/usr/bin/newaliases
 
 # vi main.cf
 myhostname = mail.abc.com
 mydomain = abc.com
 myorigin = $mydomain
 mydestination = $myhostname localhost localhost.$mydomain
 mynetworks = 127.0.0.0/8
 inet_interfaces = all
 home_mailbox = Maildir/
 
 sendmail_path = /usr/sbin/sendmail
 newaliases_path = /usr/bin/newaliases
 mailq_path = /usr/bin/mailq
 setgid_group = postdrop
 html_directory = no
 manpage_directory = /usr/local/man
 sample_directory = /etc/postfix
 
 #=====================Vritual Mailbox settings=========================
 virtual_mailbox_base = /var/vmail/
 virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
 virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
 virtual_alias_domains =
 virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
 virtual_uid_maps = static:2001
 virtual_gid_maps = static:2001
 virtual_transport = virtual
 
 #====================QUOTA========================
 message_size_limit = 52428800
 mailbox_size_limit = 209715200
 virtual_mailbox_limit = 209715200
 virtual_create_maildirsize = yes
 virtual_mailbox_extended = yes
 virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
 virtual_mailbox_limit_override = yes
 virtual_overquota_bounce = yes
 
 #====================SASL ESMTP Authenticat=================
 smtpd_sasl_auth_enable = yes
 smtpd_sasl_type = dovecot
 #smtpd_sasl_path 注意這個是dovecot的sasl路徑,與 dovecot.conf 里的對應
 smtpd_sasl_path = private/auth
 broken_sasl_auth_clients = yes
 smtpd_recipient_restrictions =  permit_mynetworks,
 permit_sasl_authenticated,
 reject_invalid_hostname,
 reject_non_fqdn_hostname,
 reject_unknown_sender_domain,
 reject_non_fqdn_sender,
 reject_non_fqdn_recipient,
 reject_unknown_recipient_domain,
 reject_unauth_pipelining,
 reject_unauth_destination
 smtpd_sasl_local_domain =
 smtpd_sasl_security_options = noanonymous
 smtpd_banner=$myhostname ESMTP
 
 
 readme_directory = no
 command_directory = /usr/sbin
 daemon_directory = /usr/libexec/postfix
 queue_directory = /var/spool/postfix
 mail_owner = postfix
 data_directory = /var/lib/postfix
 
 
 
 
 啟動服務
 dovecot
 postfix start
 
 如果出錯,看看 /var/log/maillog
 


[火星人 ]

來源:
連結:http://hi.baidu.com/delphiss/blog/item/38571c94f7a7d50e7af48052.html
CentOS 5.1下 postfix + extmail + dovecot + maildrop 最新版安裝筆記(原創)已經有337次圍觀

http://coctec.com/docs/service/show-post-18716.html