postfix+mysql+dovecot+extmail

postfix+mysql+dovecot+extmail
slinux 和iptables都關掉!!!!!!

 實驗一:準備環境:slinux 和iptables都關掉
    (1)yum install mysql mysql-server httpd telnet  dovecot-mysql  -y       
    (2)mkdir /var/www/extsuite
        cd /var/www/extsuite     
        lftp 192.168.0.254
         cd /pub/docs/extmail
        get  extmail-1.2.tar.gz extman-1.1.tar.gz
        tar zxf extmail-1.2.tar.gz 
        tar zxf extman-1.1.tar.gz 
        cd /var/www/extsuite/
        mv extmail-1.2  extmail
        mv extman-1.1   extman

        cd extmail
        ls
        cp webmail.cf.default webmail.cf
        cd extman
        ls
        cp webmail.cf.default webmail.cf
    (3)cd ../extman/docs
        mysql  -u root - p < extmial.sql

html

        輸入mysql密碼
        vi init.sql

        INSERT INTO `mailbox` VALUES         ('postmaster@extmail.org','postmaster','westos','','PostMaster','
LOCK TABLES `manager` WRITE;
INSERT INTO `manager` VALUES ('root@extmail.org','westos','admin','root',
 

mysql -u root -p < init.sql(將數據庫中的一些框架和表加進數據庫中。。。。?)輸入mysql密碼mysql

(4)    cp mysql_virtual_alias_maps  /etc/postfix/ mysql-alias.cf
cp mysql_virtual_domains_maps  /etc/postfix/ mysql-domains.cf
cp mysql_virtual_mailboxs_maps  /etc/postfix/ mysql-mailboxs.cf

 
    cd /etc/postfix/
     vi mysql-alias.cf
 
linux

  
  
  
  
  1. user = extmail 
  2. password = extmail 
  3. hosts = localhost 
  4. dbname = extmail 
  5. table = alias 
  6. select_field = goto 
  7. where_field = address 
  8. additional_conditions = AND active = '1' 
  9.   


     vi mysql-domains.cf 
   
web

  
  
  
  
  1. user = extmail 
  2. password = extmail
  3. hosts = localhost 
  4. dbname = extmail 
  5. table = domain 
  6. select_field = domain 
  7. where_field = domain
  8. additional_conditions = AND active = '1'  


     vi    mysql-mailboxs.cf 
   
sql

  
  
  
  
  1. user = extmail 
  2. password = extmail 
  3. hosts = localhost 
  4. dbname = extmail 
  5. table = mailbox 
  6. select_field = maildir 
  7. where_field = username 
  8. additional_conditions = AND active = '1'  


     
    編輯完以後要檢查文件編寫的正確與否:
  postmap -q "postmaster@extmail.org" mysql:/etc/postfix/mysql-mailboxs.cf 
    extmail.org/postmaster/Maildir/
    postmap -q "support@extmail.org" mysql:/etc/postfix/mysql-alias.cf 
    postmaster@extmail.org
    postmap -q "extmail.org" mysql:/etc/postfix/mysql-domains.cf  
    extmail.org

 
    postfix reload
    /etc/init.d/postfix restart

    收信
  
  (5)下面是關於dovecot的一些配置:
        cd /etc/dovecot/conf.d/
        vi 10-mail.conf
        mail_location = maildir:/home/vmail/%d/%n/Maildir
        first_valid_uid = 600
        vi 10-auth.conf
        !include auth-system.conf.ext
        !include auth-sql.conf.ext
 
數據庫

cp /usr/share/doc/dovecot-2.0/example-config/dovecot-sql.conf.ext /etc/dovecot

        vi   /etc/dovecot/dovecot-sql.conf.ext 
connect = host=localhost dbname=extmail user=extmail password=extmail(會自動生成的用戶名)
   default_pass_scheme=PLAIN
            password_query = \
          SELECT username, domain, password \
          FROM mailbox WHERE username = '%u'
         
       # where userid = '%u'
        user_query = SELECT maildir,600 AS uid, 600 AS gid FROM mailbox WHERE username = '%u'
           (7)
     postconf -e virtual_mailbox_base=/home/vmail
     postconf -e virtual_uid_maps=static:600
     postconf -e virtual_gid_maps=static:600
     postconf -e virtual_alias_maps=mysql:/etc/postfix/mysql-alias.cf
postconf -e virtual_mailbox_domains=mysql:/etc/postfix/mysql-domains.cf
postconf -e virtual_mailbox_maps=mysql:/etc/postfix/mysql-mailboxs.cf
    postconf -e inet_interface=all

    /etc/init.d/postfix restart
    測試完成:/etc/init.d/dovecot restart
        telnet localhost 110
        user postmaster@extmail.org
        pass westos
        list
        quit
        顯示OK 表明是正確的。
  apache

假若出現上述的狀況,是錯誤的,有多是你的配置文件有錯誤,你能夠試着去檢查文件/etc/dovecot/dovecot- sql.conf.ext 本人的錯誤是把:   user_query = SELECT maildir,600 AS uid, 600 AS gid FROM mailbox WHERE username = '%u'      後面的username寫成:userid了啊。。。。   若是你找不到錯誤緣由,你能夠查看日誌tail /var/log/maillog     正確的以下(不會自行終止哦!):vim



    實驗二:web搭建收信模式
    步驟(1)環境:yum install perl-CGI -y
         (2)vi /etc/httpd/conf/httpd.conf 
     瀏覽器

  
  
  
  
  1. <VirtualHost *:80> 
  2.     DocumentRoot /var/www/html 
  3.     ServerName desktop85.example.com 
  4. </VirtualHost> 
  5. <VirtualHost *:80> 
  6.     DocumentRoot /var/www/extsuite/extmail/html 
  7.     ServerName mail.extmail.org 
  8.     ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi 
  9.     Alias /extmail /var/www/extsuite/extmail/html 
  10.     ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi 
  11.     Alias /extman /var/www/extsuite/extman/html 
  12.    SuexecUserGroup vmail vmail 
  13. </VirtualHost> 


     NameVirtualHost *:80
 <VirtualHost *:80>
        DocumentRoot /var/www/html
        ServerName desktop39.example.com     
</VirtualHost>
     
<VirtualHost *:80>
    ServerName mail.extmail.org
    DocumentRoot /var/www/extsuite/extmail/html/
  (這裏的意思是設置你進入以後默認訪問的網頁)
    ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi (別名/extmail/cgi表明的就是/var/www/extsuite/extmail/cgi)
    Alias /extmail /var/www/extsuite/extmail/html(以 上兩句的大體意思是網頁產生實際上來自於腳本/var/www/extsuite/extmail/cgi,用別名/extmail/cgi就是告訴系統 去執行 那裏面的腳本CGI文件,而後你輸入/extmail就是訪問/var/www/extsuite/extmail/html,你輸入extman就是訪 問/var/www/extsuite/extman/html,系統默認你輸入mail.extmail.org就是去訪問/var/www /extsuite/extmail/html/,因此說默認進入的是客戶端)
    ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
    Alias /extman /var/www/extsuite/extman/html
    SuexecUserGroup vmail vmail
</VirtualHost>
    /etc/init.d/httpd restart
 
    cd /var/www/extsuite/
  chown vmail.vmail /var/www/extsuite/extmail/cgi/ /var/www/extsuite/extman/cgi/ -R
   
    vi  /var/www/extsuite/extmail/webmail.cf
    SYS_SESS_DIR = /tmp
    SYS_CRYPT_TYPE = plain
(設置密碼爲明文的,不然你登陸不進去。)
 
    SYS_LOG_ON = 0//(該值爲0意思是 不啓動日誌,若是你 不關閉日誌,那麼你進入的時候會出現Unix::Syslog not found, please install it first! (in cleanup) Undefined subroutine &Ext::Logger::do_closelog called at /var/www/extsuite/extmail/libs/Ext/Logger.pm line 86. 報錯,不能直接進去,只有把日誌禁掉,才能夠直接進去,)
    SYS_MAILDIR_BASE = /home/vmail//收到郵件的目錄。來收郵件的
    SYS_MYSQL_USER = extmail//連接數據庫的用戶名 
    SYS_MYSQL_PASS = extmail //連接數據庫的密碼
    SYS_MYSQL_DB = extmail //使用的數據庫的名字
    SYS_MYSQL_HOST = localhost //說明數據庫在本機上。
    SYS_MYSQL_SOCKET= /var/lib/mysql/mysql.sock
    SYS_CAPTCHA_ON = 0(意思是你進入的時候不會彈出驗證碼要你輸入)
 
   vim /var/www/extsuite/extman/ webman.cf(extman屬於後臺,默認的設置就能夠的)
    SYS_MAILDIR_BASE = /home/vmail
    SYS_SESS_DIR = /tmp/
    SYS_CAPTCHA_ON
= 0(意思是你進入的時候不會彈出驗證碼要你輸入)
    SYS_CRYPT_TYPE = plain
(意思是你以管理員身份進入的時候輸入明文密碼就能夠進來)
    /etc/init.d/httpd restart
    /etc/init.d/dovecot restart
    /etc/init.d/mysqld restart

注意:extmail是屬於前臺,主要是指的是關於圖形界面的一些操做,就像你等錄郵箱的時候你在接收郵件的時候那就是前臺,而extman是指的後臺, 主要指作的是管理員方面的工做,假若你的賬號過時或者有什麼問題,能夠給你禁止。若是你在appache中輸 入:mail.extmail.org/extman就能夠進去,而後選擇ExtMan Login就能夠以管理員身份進去,而後你輸入root進去。密碼固然是你的root密碼了。而後你在裏面能夠建立新的域名,也能夠在該域中添加用 戶,jack密碼redhat。假如你添加的域名爲linux.org,而後你在extmail客戶端的時候能夠以用戶:jack  password:redhat。Domail:linux.org或者是你選擇添加的其餘的域名,進去以後你能夠發送郵件接收郵件等信息。
    配置完成
    進行apache測試
假設以上設置是在虛擬機下設置的,那麼你先在要用真機去測試在真機的vi /etc/hosts
    寫進一條 192.168.0.139(IP地址)  mail.extmail.org
打開瀏覽器,而後 輸入 mail.extmail.org
  若是出現下面:
   Unix::Syslog not found, please install it first! (in cleanup) Undefined subroutine &Ext::Logger::do_closelog called at /var/www/extsuite/extmail/libs/Ext/Logger.pm line 86.
  則說明是Unix-Syslog沒裝,或者你能夠在webmail.cf中已經把SYS_LOG_ON = 0關了就不會出現那樣的提示了。。。Unix-Syslog的安裝下面,)
postmaster
    westos

   而後輸入用戶名進去
點擊compose你就能夠發送郵件,如發送爲: "ExtMail Support" <support@extmail.org>,意思是發給本地的,你能夠在Inbox中接收到你發送來的郵件信息。
你就會看到你建立的數據庫信息。
compose 發信 to:support@extmail.org wxh@extmail.org
在你的sent裏面能夠看到已發送的郵件,在Inbox能夠看到你收到的郵件信息
一樣你能夠在命令行下輸入: mail 997365xxx@qq.com就能夠發送到你發送的信息。
實驗三:
     步驟(1)cd /var/www/extsuite/
        cd extmail
         vi webmail.cf
        SYS_LOG_FILE = /var/log/extmail.log
        SYS_LOG_TYPE = file
(syslog是你產生的日誌於你系統產生的日誌混在一塊兒了,而file意思是產生獨立的文件)
          保存退出。
        touch /var/log/extmail.log
        chmod 777 /var/log/extmail.log
(意思是讓日誌文件寫進去)
        (2)    cd /var/www/extsuite
                lftp 192.168.0.254
        cd pub/docs/extmail
        get Unix-Syslog-1.1.tar.gz(你剛纔在webmail.cf中已經把SYS_LOG_ON = 0關了。由於開啓會報錯,你如今安裝以後能夠收發日誌不報錯。)
        (軟件也能夠從網上下載。)
     tar zxf Unix-Syslog-1.1.tar.gz
               cd Unix-Syslog-1.1

        你能夠查看README如何使用該源碼。
                 在當前路徑下執行 

              perl Makefile.PL
                make test
                make install

        注意在你執行上述三步的時候有可能會缺乏某些包,例如,你看能會用到              yum    install make gcc perl-ExtUtils-MakeMaker perl-GD -y
    (3)安裝完以後:
        測試:
        http://mail.extmail.org
        此時你登陸你的帳戶
        postmaster     
        westos

        進入你能夠管理員的身份添加用戶http://mail.extmail.org/extman/cgi,新增長域名信息  如:Domain :linux.org
        Description: test
        Max users: 100
        Max Alias: 100
        Max Quota: 500
        Max Netdisk :500
        Enable signup service: Active

        好比你在linux.org域裏增長一個用戶jack,密碼爲jack1
        那麼你推出以後,登陸的時候就能夠以此用戶登陸了。
    (4) yum install perl-rrdtool  -y(顯示動態日誌的時候系統繪圖)
        cd /var/www/extsuite/extman
        cd addon/
        cp -r mailgraph_ext/       /usr/local/
        cd /usr/local/mailgraph_ext
        vi mailgraph_init
        BASEDIR=/usr/local/mailgraph_ext
        ./mailgraph-init start

        在上述操做的過程當中可能會出現須要安裝  yum install perl-File-Tail
        也能夠在    服務器上下載 lftp 192.168.0.254
    cd /pub/docs/extmail
    get File-Tail-0.99.3.tar.gz
       tar zxf File-tail-0.99.3.tar.gz     
        cd File-tail-0.99.3

  在當前路徑下執行
perl Makefile.PL
        make test
        make install

運行中可能回報錯,此時也許缺乏 perl-Time-HiRes  yum install perl-Time-HiRes -y
 當上述三步執行成功以後。
./mailgraph-init start 成功以後
測試:
    appache測試:
 http://mail.extmail.org/extman能夠看到動態的日誌。
在System下的Graph Log能夠查看動態的日誌。服務器

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息