實驗一:
postfix and mysql
環境: selinux 須要是關閉的。iptables關閉的
首先,須要安裝圖形界面的建立數據庫
假設你當前的機子IP爲: 192.168.0.58
步驟:
(1)在192.168.0.58機子上:
yum install php php-server mysql mysql-server php-mysql -y
(2) cd /var/www/html
lftp 192.168.0.254
cd pub/docs
get phpMyAdmin-2.11.3-all-languages.tar.bz2
(此處是在所在環境服務器上下載,也能夠去網站上下載更高的版本)
tar jxf phpMyAdmin-2.11.3-all-languages.tar.bz2
mv phpMyAdmin-2.11.3-all-languages myadmin
cd myadmin
cp config.sample.inc.php config.inc.php
(config.inc.php是配置文件,須要修改裏面的東西,上面更名字的是將名字改短那樣你進去的時候不至於寫那麼長的名字了)
vi config.inc.php
$cfg['blowfish_secret'] = 'sushan'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
(3)在192.168.0.58機子上將appache打開:
/etc/init.d/httpd start
(4)打開瀏覽器輸入網址:
http://192,168.0.58/myadmin
而後以root省份密碼爲空的方式登陸服務器,
(5)登陸以後,首先你建立一個數據庫sushan,而後建立一個表sushanshan,設置四個字段。
username,password,domain,mailbox,假設你設置的類型全爲:VARCHAR,長度爲:25,25,15,30(僅供參考)
而後插入:
username : test@westos.org
password : sushan
domain : westos.org
mailbox : westos.org/sushan/
而後執行以後。(注意啦注意啦。。。。在這裏的westos.org/sushan/後面的‘ / ’ 千萬省不得啊。。。不然。。。。沒法建立。)
(6)postconf -n查看生效的postfix選項。postfix -d 顯示默認的選項
postconf -m
要顯示 mysql 才能將postfix和mysql結合。
useradd -u 600 vmail
postfix -e inet_interfaces = all
postfix -e virtual_alias_maps=mysql:/etc/postfix/mysql-alias.cf
postfix -e virtual_gid_maps=static:600
postfix -e virtual_mailbox_base=/home/vmail/
postfix -e virtual_mailbox_domains=mysql:/etc/postfix/mysql-domains.cf
postfix -e virtual_mailbox_maps=mysql:/etc/postfix/mysql-mailboxs.cf
postfix -e virtual_uid_maps=static:600
編輯完以後:
/etc/init.d/postfix restart
(7) mysql
mysql> grant all on sushan.* to vmail@localhost identified by 'vmail';
flush privileges;
( grant all on sushan.* to vmail@localhost identified by 'vmail';對sushan這個數據庫裏面的全部表擁有因此的全限,這個用戶名字爲vmail,登陸本地,登陸時候的密碼爲 vmail)
測試: mysql -uroot -pvmail sushan (寫上數據庫名字就會直接進入的是數據庫sushan)查看是否能夠登陸的進去。來查看以上設置是否生效。
(8)
vi /etc/postfix/mysql-alias.cf
hosts=localhost(默認是本地)
user = vmail(在受權用戶的時候設置的虛擬用戶名稱)
password = vmail(這個是在受權mysql用戶的時候設置的進入密碼)
dbname = sushan(數據庫的名字)
table = sushanshan(數據庫中表的名字)
select_field = username
where_field = username
vi /etc/postfix/mysql-domains.cf
hosts=localhost(默認是本地)
user = vmail(在受權用戶的時候設置的虛擬用戶名稱)
password = vmail(這個是在受權mysql用戶的時候設置的進入密碼)
dbname = sushan(數據庫的名字)
table = sushanshan(數據庫中表的名字)
select_field = domain
where_field = domain
vi /etc/postfix/mysql-mailboxs.cf
hosts=localhost(默認是本地)
user = vmail(在受權用戶的時候設置的虛擬用戶名稱)
password = vmail(這個是在受權mysql用戶的時候設置的進入密碼)
dbname = sushan(數據庫的名字)
table = sushanshan(數據庫中表的名字)
select_field = mailbox
where_field = username
(9)編輯完上述文件後你要檢查下你的配置文件是否正確。
測試: postmap -q "test@westos.org" mysql:/etc/postfix/mysql-alias.cf
會顯示以下:test@westos.org
postmap -q "test@westos.org" mysql:/etc/postfix/mysql-mailboxs.cf
westos.org/sushan/
postmap -q "westos.org" mysql:/etc/postfix/mysql-domains.cf
westos.org
顯示以上信息,說明正確。
(10)
最終測試:
/etc/init.d/postfix restart
/etc/init.d/mysqld restart
ll /home/vmail/(正常是不會有什麼非定製的文件的)
mail test@westos.org
Subject: test
tests
test
EOT
此時:cd /home/vmail/(此目錄的設置在:virtual_mailbox_base=/home/vmail/中設置的)
ls
會顯示 westos.org
cd westos.org/sushan/
ls
會有 cur new tmp 這幾個文件夾
cd new
ls
cat 。。。。。。。。。
便可查看你發的郵件信息的。
實驗二:
(1)添加數據庫中的:
插入: username : sushan@linux.org
password : sushan
domain : linux.org
mailbox : linux.org/sushanlinux/
(2)
此時檢查下你的配置文件是否正確。
測試: postmap -q "sushan@westos.org" mysql:/etc/postfix/mysql-alias.cf
sushan@linux.org
postmap -q "sushan@linux.org" mysql:/etc/postfix/mysql-mailboxs.cf
linux.org/sushanlinux/
postmap -q "linux.org" mysql:/etc/postfix/mysql-domains.cf
linux.org
顯示以上信息,說明正確。
(3)mail sushan@linux.org
cd /home/vmail
cd linux.org/sushanlinux/
ls
顯示 sushan 目錄。
cd sushan
ls
cur new tmp
cd new
cat。。。。。。。。查看。
pwd
/home/vmail/linux.org/sushan/new php