1.安裝postfix軟件包
2.安裝smtp認證包
3.安裝pop3和imap服務包
4.安裝webmail軟件包(webmail需要web服務器的支持)
Postfix
一.Postfix郵件服務的安裝
1.關閉sendmail
# /etc/init.d/sendmail stop
# chkconfig sendmail off
2.使用rpm命令安裝postfix
# rpm -ivh postfix-2.3.3-2-2.i386.rpm
3.配置postfix服務的主要配置文件
vim /etc/postfix/main.cf
myhostname = mail.123.com FQDN
mydomain = 123.com 域名
myorigin = $ mydomain 設置由本機發出郵件所使用的域名或主機名稱
inet_interfaces = all 監聽端口
mydestination = $mydomain, $myhostname 這一行是設置可接受郵件的主機名或域名(這一項一般不需要修改)
mynetworks_style = class 根據ip得知ip網段的 A B C類
subnet 默認 根據網卡上的設置開放網段
host 開放本機的轉發功能
myneworks = 192.168.1.0/24, 127.0.0.1/8 設置可轉發那個網絡的郵件
二.SMTP認證的配置
描述:Postfix服務只是一個MTA(郵件傳輸代理),它只提供smtp服務,也就是說只提供郵件的轉發以及本地分發功能
1.安裝cyrus-sasl認證包
默認情況下這個包是已經安裝的,可以使用以下命令查看
#rpm -qa |grep cyrus-sasl
如果沒有結果就執行以下命令安裝
# rpm -ivh cyrus-sasl-2.1.22-4.i386.rpm
設置開機啓動
#/etc/rc.d/init.d/saslauthd start
# chkconfig saslauthd on
2.cyrus-sasl v2版本的密碼驗證
默認cyrus-sasl使用的守護進程名爲saslauthd
查看支持的驗證方式
# saslauthd -v
3.設置main.cf讓postfix可以與saslauthd聯繫
vim /etc/postfix/main.cf
smtpd_sasl_auth_enable=yes 啓用smtp
smtpd_sasl_local_domain=‘’ 允許本地域使用sasl
smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
permit 允許的網絡不需要驗證,
reject 拒絕的網絡需要通過驗證後才轉發
broken_sasl_auth_clients=yes 打破客戶端驗證,使客戶端只使用sasl方式驗證登錄
smtpd_client_restrictions=permit_sasl_authenticated 客戶端限制,只允許sasl方式的驗證
smtpd_sasl_security_options=noanonymous 取消登錄(禁止匿名登錄)
4.設置saslauthd使用shadow文件認證機制
vim /etc/sysconfig/saslauthd
MECH = shadow
5.測試
三.Pop和imap郵件服務
描述:實現郵件的異地接收,默認這兩個服務是沒有的,需要安裝兩個軟件包來提供pop跟imap郵件服務(dovecot和cyrus-imapd)。Pop跟imap服務所使用的端口分別是 110和143.
1.安裝dovecot
需要安裝的perl-DBI mysql dovecot 包
# /etc/rc.d/init.d/dovecot start
# chkconfig dovecot on
2.dovecot服務的配置
vim /etc/dovecot.conf
protocols = pop3 pop3s
protocol pop3 {
listen = *:10100
}
3.安裝cyrus-imapd
需要安裝cyrus-imapd-pearl cyrus-imapd-utils db4-utils lm_sensors cyrus-imapd cyrus-imapd-devel
# /etc/init.d/cyrus-imapd start
# chkconfig cyrus-imapd on
4.將postfix與cyrus-imapd整合在一起
vim /etc/postfix/main.cf
mailbox_transport=lmtp:unix:/var/lib/imap/socket/lmtp
5.管理用戶郵箱
創建用戶
passwd cyrus 給cyrus管理員賬戶設置密碼
useradd test
passwd test
cyradm -u cyrus localhost
cm user.test 創建用戶
cm user.test.Send 發件箱
cm user.test.Trash 收件箱
cm user.test.Drafts 垃圾箱
setquota user.test 5120 (設置郵箱配額大小,默認以k爲單位)
lm 列出與給定字符串
cm 創建一個新的郵箱
dm 刪除一個郵件信箱及其下層的所有文件夾
renm 爲郵件信箱更名
dam 刪除用戶訪問郵件信箱的部分或全部權限
lam 列出郵件信箱的訪問權限列表
sq 爲郵件信箱設置配額
lq 列出郵件信箱的配額
# su -l cyrus -c /usr/lib/cyrus-imapd/quota 查看郵箱配額
四.Squirrelmail
1.安裝squirrelmail
需要的安裝包 php-mbstring squirrelmail
2.配置webmail
可以使用/etc/squirrelmail/config.php 文件來修改配置選項
使用Squirrelmail的配置工具修改配置選項
# /usr/share/squirrelmail/config/config.pl
2 ; 1; 123.com; 3 ; 2; s; r
10; 1; zh_CN; 2; gb2312 ; s; r
4; 5; y; s; r
D; cyrus;s; q
(1)設置域名跟smtp
(2)設置語言
(3)
五.dns與httpd簡單設置
vim /var/named/chroot/etc/named.conf
vim /var/named/chroot/var/named/123.com.zone
清空/etc/resolv.conf文件的內容
客戶端測試收發郵件
postfix郵件常用命令:
查看隊列::postqueue -p
清空隊列:postsuper -d ALL
postfix有四種不同的郵件隊列,並且由隊列管理進程統一進行管理:
1. maildrop:本地郵件放置在maildrop中,同時也被拷貝到incoming中。
2. incoming:放置正在到達或隊列管理進程尚未發現的郵件。
3. active:放置隊列管理進程已經打開了並正準備投遞的郵件,該隊列有長度的限制。
4. deferred:放置不能被投遞的郵件。
啓動postfix:postfix start
停止postfix:postfix stop
重新讀取postfix配置文件:postfix reload
立即投遞隊列中所有郵件:postfix flush
查看隊列郵件:postqueue -p
使用postsuper 來維護隊列
一般是先用mailq查看隊列裏的郵件,找到對應的id,然後用postsuper -d來刪除。
例如id是0EAF3A9B 那麼postsuper -d
########################################################
########################################################
------------------------------------------------------------
基本配置文件
vim /etc/postfix/main.cf
myhostname = mail.123.com FQDN
mydomain = 123.com 域名
myorigin = $ mydomain 設置由本機發出郵件所使用的名稱
inet_interfaces = all 監聽端口
mydestination(不用修改) 這一行是設置可接受郵件的主機名或域名
mynetworks= class 根據ip得知ip網段的 A B C類
subnet 默認 根據網卡上的設置開放網段
host 開發本機的轉發功能
myneworks = 192.168.1.0/24, 127.0.0.1/8 設置可轉發那個網絡的郵件
relay_domains =123.com 轉發到下一個mta的域名
alias_maps=hash:/etc/aliases 郵件別名配置文件postmap
alias_database=hash:/etc/aliases 郵件別名數據庫 postalias
-------------------------------------------------------------
訪問控制配置文件
vim /etc/postfix/master.cf
vim /etc/postfix/access 存取控制文件
192.168.1.1 ACCEPT 允許
baidu.com REJECT 拒絕
portmap /etc/postfix/access 是配置文件生效
-------------------------------------------------------------
用戶別名配置文件
vim /etc/aliases 別名
真實用戶名: 別名
postalias hash:/etc/aliases 使別名文件生效
-------------------------------------------------------------
虛擬別名域
vim /etc/postfix/main.cf
virtual_alias_domain = a.net b.net 域的別名
virtual_alias_maps = hash:/etc/postfix/virtual 域別名的文件
vim /etc/postfix/virtual
@a.net(別名) @a.com(真實)
@b.net @b.net
postalias /etc/aliases
portmap /etc/postfix/virtual 使別名域生效
dns設置
a.com IN NS 127.0.0.1
www IN A 192.168.1.1
mail.a.com IN CNAME www.a.com
a.com IN MX 10 mail.a.com
------------------------------------------------------------
SMTP認證 (簡單郵件傳輸協議)
提供郵件的轉發以及本地的分發功能
cyrus sasl
cyrus 主要提供saslauthd服務來進行帳號密碼的對比操作
安裝cyrus-sasl cyrus-sasl-devel cyrus-sasl-plain cyrus-sasl-md5 等軟件
啓動saslauthd服務
設置main.cf讓postfix可以與saslauthd聯繫
vim /etc/postfix/main.cf
smtpd_sasl_auth_enable=yes 啓用smtp
smtpd_sasl_local_domain=‘’ 允許本地域使用sasl
smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
permit允許的網絡不需要驗證,reject 拒絕的網絡需要通過驗證後才轉發
broken_sasl_auth_clients=yes 打破客戶端驗證,使客戶端只使用sasl方式驗證登錄
smtpd_client_restrictions=permit_sasl_authenticated 客戶端限制,只允許sasl方式的驗證
smtpd_sasl_security_options=noanonymous 取消登錄(禁止匿名登錄)
saslauthd -v 查看可使用的密碼驗證方式
testsaslauthd -u cyrus -p ‘123456’ 測試saslauthd認證功能
設置saslauthd的認證機制
vim /etc/sysconfig/saslauthd
MECH=shadow
--------------------------
安裝pop3
dovecot perl-DBI mysql
編輯pop3主配置文件開啓pop3服務器:
vim /etc/dovecot.conf
protocols=pop3 pop3s
protocol pop3{listen=*:10100}
/etc/init.d/dovecot start
----------------------------
安裝 imap
cyrus-imapd-perl cyrus-imapd-utils db4-utils lm_sensors cyrus-imapd cyrus-imapd-devel
將postfix與cyrus-imapd整合在一起
vim /etc/postfix/main.cf
mailbox_transport=lmtp:unix:/var/lib/imap/socket/lmtp
/etc/init.d/cyrus-imapd start
--------------------------------------------------------------------
創建用戶
password cyrus 給cyrus管理員賬戶設置密碼
useradd test
passwd -d test
cyradm -u cyrus localhost
cm user.test 創建用戶
cm user.test.Send 發件箱
cm user.test.Trash 收件箱
cm user.test.Drafts 垃圾箱
setquota user.test 5120 (設置郵箱配額大小,默認以k爲單位)
lm 列出與給定字符串
cm 創建一個新的郵箱
dm 刪除一個郵件信箱及其下層的所有文件夾
renm 爲郵件信箱更名
dam 刪除用戶訪問郵件信箱的部分或全部權限
lam 列出郵件信箱的訪問權限列表
sq 爲郵件信箱設置配額
lq 列出郵件信箱的配額
su -l cyrus -c /usr/lib/cyrus-imapd/quota 查看郵箱配額
web方式收發郵件 (squirrelmail)
安裝
php-mbstring
squirrelmail
配置工具 配置域名,smtp,語言,
/usr/share/squirrelmail/config/conf.pl
2 ; 1; 123.com; 3 ; 2; s; r
10; 1; zh_CN; 2; gb2312 ; s; r
4; 5; y; s; r
D; cyrus;s; q
客戶端在寄信時設置“郵件主機認證”功能
設置saslauthd的認證機制
vim /etc/sysconfig/saslauthd
MECH=shadow