CentOS Postfix 安裝構架全解
郵件代理
1. MUA ( Mail User Agent )
提供使用者寫信、讀信、寄信、收信的軟體。寄信的時候通過SMTP協議將郵件交給MTA ,收信的時候
使用POP3或IMAP協議訪問伺服器上的使用者郵箱。
比較常見的MUA軟體有 ThunderBird ,FoxMail ,Eudora ,mutt , Evolution的C/S結構的,也
有像SquirrelMail ,openwebmail,RoundCube ,sqwebmail 等B/S結構的MUA程式。
2. MTA ( Mail Transfer Agent )
提供接收、傳遞郵件的伺服器軟體。決定郵件傳遞的路徑,進行必要的改寫地址改寫。如果是自己
所管轄的域的郵件,就收下郵件,交給MDA進行最後的投遞。
比較著名的MTA 有sendmail ,postfix ,qmail ,extm ,Courier(其中包括mta,mda等)等,
還有一些非開源的。
3. MDA ( Mail Delivery Agent )
MDA是被MTA呼叫,負責將郵件投遞到使用者的郵箱。MDA也可以過濾郵件內容,或是按照使用者的規則,
將郵件分類到適當的郵箱;甚至可以將郵件轉回給MTA,以寄到另一個郵箱中。
在類Unix的系統中,procmail和maildrop是比較著名的MDA程式,在dovecot軟體中也有MDA的功
能。
postfix與其他元件之間的關係
1.瞭解基本概念和原理後,進行安裝操作。先確定自己安裝的系統
2.配置主機名
編輯/etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.1.210 pretty.girl.face
編輯/etc/sysconfig/network 檔案,修改HOSTNAME的值
HOSTNAME=pretty.girl.face
更新系統
yum update -y
reboot
3.安裝基本軟體包
1)安裝編譯軟體
yum install -y gcc gcc-c++ rpm-build autoconf automake
2)安裝apache,php,mysql
yum install -y mysql mysql-server mysql-devel
yum install -y httpd mod_ssl php php-mysql php-mbstring php-imap php-pear-DB
啟動httpd
/etc/init.d/httpd start
啟動mysqld
/etc/init.d/mysqld start
3 ).驗證apache,php,mysql是否正確安裝
echo "<?php
phpinfo();
?>" > /var/www/html/test.php
訪問,http://192.168.1.210/test.php,檢查是否支援mysql,imap功能。
4.安裝mail工具
yum -y install mutt
5.解除安裝sendmail
yum -y remove sendmail
6.安裝postfix
yum -y install postfix
7.編輯/etc/postfix/main.cf
1)設定主機名
myhostname = pretty.girl.face
2)發信時所顯示的“發信源主機”專案
myorigin = $myhostname
3)設定postfix的監聽埠
inet_interfaces = all
4)設定能夠“收信的主機名稱”(目的地地址)
mydestination = $myhostname,localhost. $mydomain,localhost, $mydomain
5)指定信任網段型別
mynetworks_style= host
6)指定信任的客戶端
mynetworks = 192.168.1.0/24, 127.0.0.0/8
7)指定允許中轉郵件的域名
relay_domains = $mydestination
8) 設定郵件的別名
alias_maps = hash:/etc/aliases
4.啟動postfix服務,並設定為開機啟動
chkconfig postfix on
/etc/init.d/postfix restart
netstat -tlnup | grep 25
5.安裝dovecot,cyrus-sasl並進行設定
yum -y install dovecot cyrus-sasl
vim /etc/dovecot.conf
protocols = pop3
listen = *
測試一下好了
查收一下
6.設定postfix支援smtp認證
1)執行saslauthd -v
可以顯示saslauthd支援的認證機制
2)編輯/etc/sysconfig/saslauthd檔案,確認為
MECH=shadow
3)啟動saslauthd
service saslauthd start
/usr/sbin/testsaslauthd -u user -p 'password'可以嘗試測試saslauthd認證是否生效
4)設定postfix支援smtp認證
在main.cf檔案中更改如下:
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = ''
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
broken_sasl_auth_clients=yes
smtpd_client_restrictions = permit_sasl_authenticated
smtpd_sasl_security_options = noanonymous
5)測試SMTP認證是否成功
由於剛才配置的postfix的SMTP使用者身份認證採用的不是明文方式,所以要首先計算出自己的使用者名稱和密碼才行。通過perl命令就可以算出來
期間遇到,
telnet: Unable to connect to remote host: Connection refused
查詢可能是xinted服務沒有啟動。
service xinted start
至此,說明配置postfix伺服器SMTP使用者認證成功。
嘗試設定客戶端
嘗試傳送郵件
說明伺服器執行正常。
postfix服務只是一個MTA(郵件傳輸代理),它只提供SMTP服務,也就是隻提供轉發和本地分發的功能。要實現一臺伺服器既作為郵件傳送服務,又可以儲存郵件,還必須安裝POP3或IMAP服務。那麼這臺主機也就稱作為郵件伺服器。2個軟體可以同時提供POP3和IMAP服務:Dovecot和cyrus-imapd。
6)以web方式收發電子郵件-SquirreMail安裝與配置
http://www.squirrelmail.org下載地址
squirrelmail-webmail-1.4.22.tar.gz(軟體)
all_locales-1.4.18-20090526.tar.gz(語言包)
tar zxvf squirrelmail-webmail-1.4.22.tar.gz -C /var/www/html/
cd /var/www/html
mv squirrelmail-webmail-1.4.22/ webmail
cd webmail/
建立及調整資料目錄
建立config.php配置檔案
cp config/config_default.php config/config.php
vi config/config.php
$squirrelmail_default_language = 'zh_CN';
$default_charset = 'zh_CN.UTF-8';
$domain = 'pretty.girl.face';
$smtpServerAddress = '192.168.1.210'; //設定發信伺服器地址及埠
$smtpPort = 25;
$imap_server_type = 'dovecot'; //設定收信人伺服器地址及埠
$imapPort = 143;
$data_dir = '/var/www/html/webmail/data/'; //設定資料儲存路徑
$p_w_upload_dir = '/var/www/html/webmail/user/';
在web中嘗試
注:確保Web伺服器有許可權讀取和寫在PHP的配置指令session.save_path的指定目錄(vim /etc/php.ini)
簡單的webmail收發就設定完成了。
轉載於:https://blog.51cto.com/sailforever/943193