postfix+dovecot(不使用mysql)
1.在DNS服務器設置好郵箱服務器的主機記錄及MX記錄
2.安裝postfix
yum -y install postfix
3.修改postfix配置文件
vi /etc/postfix/main.cf
#myhostname = host.domain.tld ← 找到此行,將等號後面的部分改寫爲主機名
↓
myhostname = mail.test.com ← 變爲此狀態,設置系統的主機名
#mydomain = domain.tld ← 找到此行,將等號後面的部分改寫爲域名
↓
mydomain = test.com ← 變爲此狀態,設置域名(我們將讓此處設置將成爲E-mail地址“@”後面的部分)
#myorigin = $mydomain ← 找到此行,將行首的#去掉
↓
myorigin = $mydomain ← 變爲此狀態,將發信地址“@”後面的部分設置爲域名(非系統主機名)
inet_interfaces = localhost ← 找到此行,將“localhost”改爲“all”
↓
inet_interfaces = all ← 變爲此狀態,接受來自所有網絡的請求
mydestination = $myhostname, localhost.$mydomain, localhost ← 找到此行,在行爲添加“$mydomain”
↓
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain ← 變爲此狀態,指定發給本地郵件的域名
#relay_domains = $mydestination ← 找到此行,將行首的#去掉
↓
relay_domains = $mydestination ← 變爲此狀態,定義允許轉發的域名
#mynetworks = 0.0.0.0 ← 找到此行,依照自己的內網情況修改
↓
mynetworks = 0.0.0.0 ← 變爲此狀態,指定內網和本地的IP地址範圍
#mail_spool_directory = /var/spool/mail ← 找到這一行,去掉行首的#
↓
mail_spool_directory = /var/spool/mail ← 變爲此狀態
#smtpd_banner = $myhostname ESMTP $mail_name
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) ← 找到這一行,接此行添加如下行:
smtpd_banner = $myhostname ESMTP unknow ← 添加這一行,不顯示SMTP服務器的相關信息
在配置文件的文尾,添加如下行:
smtpd_sasl_auth_enable = yes ← 服務器使用SMTP認證
smtpd_sasl_local_domain = $myhostname ← 指定SMTP認證的本地域名(主機名)
smtpd_sasl_security_options = noanonymous ← 不允許匿名的方式認證
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
message_size_limit = 15728640 ← 規定郵件最大尺寸爲15MB
4.配置SMTP認證的相關選項
vi /usr/lib/sasl2/smtpd.conf ← 編輯SMTP認證的配置文件
pwcheck_method: saslauthd
[root@sample ~]# vi /etc/sysconfig/saslauthd
MECH=shadow ← 找到這一行,在前面加#
FLAGS= ← 找到此行,在等號後面添加“sasldb”
↓
FLAGS=sasldb ← 定義認證方式爲sasldb2
5.首先建立用戶模板下的郵箱目錄,以便於建立新用戶時,相應用戶的郵箱目錄自動被建立。
mkdir /etc/skel/Maildir ← 在用戶模板下建立用戶郵箱目錄
chmod 700 /etc/skel/Maildir ← 設置用戶郵箱目錄屬性爲700
然後再爲已經存在的用戶建立相應郵箱目錄。
mkdir /home/yhzhao/Maildir ← 爲用戶(這裏以centospub用戶爲例)建立郵箱目錄
chmod 700 /home/yhzhao/Maildir ← 設置該用戶郵箱目錄屬性爲700
chown yhzhao. /home/yhzhao/Maildir ← 設置該用戶郵箱目錄爲該用戶所有
6.爲用戶設置SMTP認證密碼
view plaincopy to clipboardprint?
saslpasswd2 -u mail.3gf8.com -c yhzhao ← 爲centospub用戶設置SMTP認證密碼
Password: ← 在這裏輸入密碼(不會顯示)
Again (for verification): ← 再次輸入密碼
7.改變SALS的屬性及歸屬
chgrp postfix /etc/sasldb2 ← 將數據庫歸屬改爲postfix,
chmod 640 /etc/sasldb2 ← 將數據庫屬性改爲640
8.將默認的MTA設置爲Postfix。
alternatives --config mta ← 設置默認MTA
There are 2 programs which provide ‘mta’.
共有 3 個程序提供“mta”。
選擇 命令
-----------------------------------------------
+ 1 /usr/sbin/sendmail.postfix
* 2 /usr/sbin/sendmail.sendmail
3 /usr/sbin/sendmail.exim
按 Enter 來保存當前選擇[+],或鍵入選擇號碼: ← 在這裏輸入1,使Postfix成爲默認MTA
9.啓動相應的服務
chkconfig saslauthd on ← 將SMTP-Auth設置爲自啓動
chkconfig --list saslauthd ← 確認SMTP-Auth服務狀態
saslauthd 0:off 1:off 2:on 3:on 4:on 5:on 6:off ← 確認2~5爲on的狀態就OK
/etc/rc.d/init.d/saslauthd start ← 啓動SMTP-Auth
Starting saslauthd: [ OK ]
chkconfig postfix on ← 將Postfix設置爲自啓動
chkconfig --list postfix ← 確認Postfix服務狀態
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off ← 確認2~5爲on的狀態就OK
/etc/rc.d/init.d/postfix start ← 啓動Postfix
Starting postfix: [ OK ]
10.配置dovecot
根據dovecot的版本不同有相應的變化default_mail_env在高版本里面變成maim_location,
vi /etc/dovecot.conf
protocols = imap pop3 ← 變爲此狀態
#mail_location = mbox:~/mail:INBOX=/var/mail/%u ←找到這一行
mail_location = mbox:~/mail:INBOX=/var/mail/%u← 定義用戶郵件目錄
最後,啓動 Dovecot ,並將其設置爲自啓動。
chkconfig dovecot on ← 設置Dovecot爲自啓動
chkconfig –list dovecot
dovecot 0:off 1:off 2:on 3:on 4:on 5:on 6:off ← 確認2~5爲on的狀態就OK
/etc/rc.d/init.d/dovecot start ← 啓動Dovecot服務
Starting Dovecot Imap: [ OK ]
通過郵件客戶端來設置自己的郵件服務器吧。
測試可以正常收發郵件
對郵件組進行權限控制
1.# vi /etc/postfix/main.cf
添加下面幾行:
#設置只能[email protected] 給[email protected] 發郵件
smtpd_restriction_classes = local_only
local_only = check_sender_access hash:/etc/postfix/local_sender, reject
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/local_recipient
2.#vi local_sender
加入允許羣發到all的郵件列表:
[email protected] OK
如果允許本域所有用戶可以羣發到all,則只添加
test.com OK
即可。
3.# vi local_recipient
添加羣賬號:
[email protected] local_only
4.建立local_recipient和local_sender的hash表
# postmap hash:/etc/postfix/local_sender
# postmap hash:/etc/postfix/local_recipient
在/etc/postfix目錄下生成2個db文件:
local_recipient.db和local_sender.db
5.重啓Postfix
# /etc/init.d/postfix restart
6.測試:只有在local_sender裏的用戶才能給[email protected]羣發,其他不受影響。
已經測試通過。
webmail配置
安裝openwebmail前需安裝:
rpm -ivh perl-suidperl-5.8.8-27.el5.i386.rpm perl-Text-Iconv-1.7-1.el5.rf.i386.rpm
rpm -ivh openwebmail-2.53-1.i386.rpm openwebmail-data-2.53-1.i386.rpm
cd /var/www/cgi-bin/openwebmail/
./openwebmail-tool.pl --init
vi etc/openwebmail.conf
domainnames test.com(默認爲auto)
default_language zh_CN.GB2312(默認爲en)
default_iconset Cool3D.Chinese.Simplified
vi etc/defaults/openwebmail.conf
smtpserver 127.0.0.1
更改爲:
smtpserver 192.168.30.16 (更改smtp服務器的地址)
mailspooldir /var/spool/mail(此先項與main.cf和dovecot中的 mail_location保持一致,否剛openwebmail收不到郵件)
authpop3_server localhost
更改爲:
authpop3_server 192.168.30.16 (更改pop3服務器的地址)
vi etc/defaults/dbm.conf
dbmopen_ext none
更改爲:
dbmopen_ext .db
dbmopen_haslock no
更改爲:
dbmopen_haslock yes
smtpserver 192.168.30.16 (添加smtp服務器的地址)
然後再次執行:./openwebmail-tool.pl --init
vi /etc/httpd/conf/httpd.conf
ServerName mail.test.com:80 -----找到此行,去掉註釋後改成服務器名稱
AddHandler cgi-script .cgi ----------找到此行,去掉註釋
/etc/init.d/httpd restart --------------重啓http
打開瀏覽器輸入:http://mai.test.com/openwebmail/openwebmail.pl
多域名支持設置
vi /etc/postfix/main.cf
virtual_alias_maps=hash:/etc/postfix/virtual
二、定義虛擬域名轉換規則
$ vi /etc/postfix/virtual //在文件末尾添加上下面兩行
test.cn anything
@test.cn @test.com
[email protected][email protected]
三、更新虛擬域名規則
$ postmap /etc/postfix/virtual
四、重啓postfix
$ service postfix restart