linux運(yùn)維學(xué)習(xí)筆記:郵件服務(wù)器系列之01:postfix + extmail

linux運(yùn)維學(xué)習(xí)筆記:郵件服務(wù)器系列之01:postfix + extmail

作者:周少言
201年 月 日 星期 约啊,于北京

聲明:本博客是本人周少言在某培訓(xùn)機(jī)構(gòu)學(xué)習(xí)期間所寫(xiě)段审,其中參考借鑒了他人的博客宰僧,本文將會(huì)選擇性給出相關(guān)鏈接锌妻,如有侵權(quán)勾邦,懇請(qǐng)告知序六。本文如有錯(cuò)誤糕非,懇請(qǐng)告知跃须,歡迎交流站叼。

參考連接:基本原理

本文是工作手冊(cè),經(jīng)過(guò)反復(fù)試驗(yàn)所寫(xiě)菇民,所以尽楔,盡情在你的xshell粘貼復(fù)制,讓更多的時(shí)間用來(lái)思考投储!如果有不妥的地方,懇請(qǐng)留言告知阔馋。

如果您覺(jué)得本文值得分享玛荞,請(qǐng)幫忙分享出去哦!知識(shí)的可貴在于分享與交流呕寝,謝謝勋眯。

postfix(作為發(fā)送郵件服務(wù)器)+dovecot(作為接收郵件服務(wù)器)+mysql(作為數(shù)據(jù)庫(kù))+extmail (webmail)

本次實(shí)驗(yàn)所需的資料下載

鏈接:https://pan.baidu.com/s/1qYFow4O 密碼:56qv
用lrzsz將其拖拽到/root目錄下

郵件服務(wù)器原理

概念解釋
MUA:Mail User Agent.郵件用戶代理。(客戶端)
用戶通過(guò)MUA接收發(fā)送郵件用戶通過(guò)MUA接收發(fā)送郵件.例如Outlook,formail等.

MTA:MailTransferProtocol.郵件傳輸代理壁涎。 (發(fā)送郵件服務(wù)器)
是SMTP的一種實(shí)現(xiàn).常用的MTA有sendmail,Postfix.本例中使用Postfix.MTA僅僅負(fù)責(zé)郵件的傳輸,MDA負(fù)責(zé)把接收到的郵件保存在硬盤(pán)中.

MDA: Mail Deliver Agent,郵件分發(fā)代理. 負(fù)責(zé)將接收到的郵件保存在郵件服務(wù)器上.sendmail以及Postfix默認(rèn)使用的MDA是procmail.

MRA: Mail Receive Agent,郵件接收代理凡恍。 (郵件接收服務(wù)器) 用來(lái)實(shí)現(xiàn)IMAP,POP3協(xié)議,負(fù)責(zé)與MUA交互,將服務(wù)器上的郵件通過(guò)IMAP以及POP3傳輸給客戶端.本例中使用的MRA是Dovecot.

LMTP:Local Mail Transfer Protocol. 本地郵件傳輸協(xié)議,是SMTP協(xié)議的擴(kuò)展.本例中用與同一主機(jī)內(nèi)郵件傳輸.

Postfix:一個(gè)開(kāi)源的MTA服務(wù)器,負(fù)責(zé)通過(guò)SMTP協(xié)議管理發(fā)送到本機(jī)的郵件以及由本機(jī)向外發(fā)送的郵件.與sendMail相似.現(xiàn)今流行的服務(wù)器套件例如Zimbra,IRedMail內(nèi)部都采用Postfix作為MTA.

Dovecot:一個(gè)開(kāi)源的IMAP以及POP3服務(wù)器.通常工作是驗(yàn)證用戶身份以及郵件的處理.

MySQL:存取用戶信息,監(jiān)聽(tīng)的域名信息,用戶郵箱地址以及登錄密碼等.

postfix初試探

postfix默認(rèn)已安裝

1、修改postfix主配置文件

vim /etc/postfix/main.cf

myhostname = mail.laihu.com                            郵件服務(wù)器主機(jī)名
mydomain = laihu.com                                      郵件域
myorigin = $myhostname                              允許發(fā)送郵件的地址(取消注釋) 
myorigin = $mydomain
inet_interfaces = all                                         監(jiān)聽(tīng)的地址
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain                    設(shè)置允許接受郵件的地址
home_mailbox = Maildir/                               存放位置

/etc/init.d/postfix restart
(否則會(huì)報(bào)錯(cuò))

2怔球、測(cè)試

先創(chuàng)建兩個(gè)用戶
useradd zhangsan
useradd lisi
passwd ...

yum -y install telnet 安裝telnet
telnet mail.laihu.com 25 鏈接郵件服務(wù)器

helo    mail.laihu.com `           申明域名
mail from: zhangsan@laihu.com`
rcpt to:lisi@laihu.com`
data
    dkasjdklasjkdjaklsjdlajskdla     (郵件內(nèi)容)
    .                        (表示結(jié)束)
quit            (退出)

進(jìn)入lisi家目錄去查看

3嚼酝、安裝 dovecot

yum -y install dovecot

service dovecot start

netstat -an | grep 110 \ 143

telnet  mail.laihu.com 110
user lisi
pass 123

list  列出郵件

retr 1  使用序號(hào)進(jìn)行查看郵件

搭建接企業(yè)級(jí)郵件服務(wù)器

1.使用extmail自帶模板在mysql中創(chuàng)建數(shù)據(jù)庫(kù)

yum -y install mysql mysql-server mailx httpd

/etc/init.d/mysqld start
mysqladmin -uroot password 123
(創(chuàng)建MySQL 的root密碼,mysqladmin -u[username] -p[password] extended-status )

mkdir /var/www/extsuite 
mkdir /iso
mount -o loop /root/EXTMAIL.iso  /iso
cd /iso
tar -zxf extmail-1.2.tar.gz -C /var/www/extsuite/
tar -zxf extman-1.1.tar.gz -C /var/www/extsuite/
cd /var/www/extsuite

mv extmail-1.2 extmail
mv extman-1.1 extman
cd extman/docs/

grub-md5-crypt 創(chuàng)建密碼 abc.com
vim init.sql
修改root@extmail.org的密碼(復(fù)制grub產(chǎn)生的密碼,在第27行 INSERT INTO manager VALUES ('root@extmail.org', 刪除此處的示例密碼)
如果mysql沒(méi)有設(shè)置密碼:

    mysql < extmail.sql  導(dǎo)入extmail自帶數(shù)據(jù)庫(kù)
    mysql < init.sql     導(dǎo)入extmail的測(cè)試賬戶

有密碼:

        mysql -uroot -p <extmail.sql
            Enter password:  123
        mysql -uroot -p <init.sql

然后用
mysql -uroot -p
輸入密碼123
輸入 show databases; (有分號(hào))
使用數(shù)據(jù)庫(kù),輸入:

use extmail
show  tables;
exit

2.配置postfix支持虛擬域

cd /var/www/extsuite/extman/docs/
拷貝模板文件:(支持虛擬用戶)

cp mysql_virtual_alias_maps.cf mysql_virtual_domains_maps.cf mysql_virtual_mailbox_maps.cf  /etc/postfix/
useradd -u 600 vmail
postconf -e inet_interfaces=all
postconf -e virtual_mailbox_base=/home/vmail
postconf -e virtual_uid_maps=static:600
postconf -e virtual_gid_maps=static:600

postfix讀取模板文件:

postconf -e virtual_alias_maps=mysql:/etc/postfix/mysql_virtual_alias_maps.cf
postconf -e virtual_mailbox_domains=mysql:/etc/postfix/mysql_virtual_domains_maps.cf
postconf -e virtual_mailbox_maps=mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
重啟postfix竟坛,查看是否成功闽巩!

/etc/init.d/postfix restart
發(fā)一封郵件:
echo "hello world" | mail -s test support@extmail.org
(沒(méi)有DNS則不會(huì)成功)

cd /home/vmail/ ; ls
extmail.org 目錄存在則postfix配置成功
進(jìn)入收件箱:
cd /home/vmail/extmail.org/postmaster/Maildir/new/
cat 查看

3.配置MDA(dovecot)

yum -y install dovecot dovecot-mysql 
cd /etc/dovecot/conf.d/
vim 10-mail.conf  
          mail_location = maildir:/home/vmail/%d/%n/Maildir  郵件收取配置,這里采用mairdir形式                   24行
          first_valid_uid = 600    167行


vim 10-auth.conf
          !include auth-sql.conf.ext  去掉注釋    120行
cd ../ 
cp /usr/share/doc/dovecot-2.0.9/example-config/dovecot-sql.conf.ext  /etc/dovecot
   
vim dovecot-sql.conf.ext
          driver = mysql   29行
          connect =  host=localhost dbname=extmail user=extmail password=extmail          63行
          default_pass_scheme = MD5   73行
          password_query = \            102行
              SELECT username, domain, password \
              FROM mailbox WHERE username = '%u' and domain = '%d'      (小心担汤,此處需要修改)
          user_query = SELECT maildir, 600 AS uid, 600 AS gid FROM mailbox WHERE username = '%u'          120行

啟動(dòng)dovecot,測(cè)試
/etc/init.d/dovecot start

Dovecot 是一個(gè)開(kāi)源的 IMAP 和 POP3 郵件服務(wù)器涎跨,支持 Linux/Unix 系統(tǒng)。

yum -y install telnet
telnet localhost 110

Trying ::1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready. 1832.1.513560b4.LftMXp8dtjujF/reBTodLw==@desktop19.example.com
user postmaster@extmail.org (命令:輸入用戶名)
+OK
pass extmail (命令:輸入密碼)
+OK Logged in.
list (命令:列出郵件)
+OK 2 messages:
1 568
2 568

retr 2 (命令:查看第二封郵件)

quit 退出

4.配置web界面:
vim /etc/httpd/conf/httpd.conf

在最后一行添加以下內(nèi)容即可(復(fù)制容易出現(xiàn)符號(hào)錯(cuò)誤崭歧,要謹(jǐn)慎,出現(xiàn)錯(cuò)誤的原因是空格問(wèn)題隅很,復(fù)制時(shí),不要帶上任何空格)

<VirtualHost *:80>
      ServerName mail.extmail.org
      DocumentRoot /var/www/extsuite/extmail/html/
      ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
      Alias /extmail /var/www/extsuite/extmail/html
      ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
      Alias /extman /var/www/extsuite/extman/html
      SuexecUserGroup vmail vmail
</VirtualHost>

可以考慮復(fù)制下面的代碼:

<VirtualHost *:80>
ServerName mail.extmail.org
DocumentRoot /var/www/extsuite/extmail/html/
ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
Alias /extmail /var/www/extsuite/extmail/html
ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
Alias /extman /var/www/extsuite/extman/html
SuexecUserGroup vmail vmail
</VirtualHost>

檢查每一行后面是否有空格率碾,有則刪除叔营。

cd /var/www/extsuite/extmail
chown -R  vmail.vmail cgi/
\cp webmail.cf.default webmail.cf
vim webmail.cf
     SYS_MAILDIR_BASE = /home/vmail     127行
     SYS_MYSQL_USER = extmail           139行
     SYS_MYSQL_PASS = extmail
     SYS_CRYPT_TYPE = plain             136行
cd /var/www/extsuite/extman
chown -R vmail.vmail cgi/
cp webman.cf.default webman.cf
vim webman.cf
     SYS_MAILDIR_BASE = /home/vmail    12行
     SYS_SESS_DIR = /tmp/               18行
     SYS_CAPTCHA_LEN = 4              27行(驗(yàn)證碼長(zhǎng)度)
     SYS_CRYPT_TYPE = plain            124行 (字符集驗(yàn)證類型)

vim /etc/httpd/conf/httpd.conf
NameVirtualHost *:80                去掉注釋 第990行

啟動(dòng)httpd service httpd start
測(cè)試界面:
這里會(huì)報(bào)錯(cuò),所以我們安裝以下軟件以防報(bào)錯(cuò)

yum  -y install *CGI 
cd /iso
tar xf Unix-Syslog-1.1.tar.gz -C /root
cd /root/Unix-Syslog-1.1
perl Makefile.PL

此處盡量一步一步來(lái)所宰,以免出錯(cuò)绒尊。

make test
make install 

在新用戶注冊(cè)時(shí),出現(xiàn)驗(yàn)證碼顯示不正常則:

cd /iso
yum install -y perl-GD-2.44-3.el6.x86_64.rpm

EXTmail郵件后臺(tái)extman顯示No such file or directory
運(yùn)行以下命令:
/var/www/extsuite/extman/daemon/cmdserver -d

service httpd restart

測(cè)試帳號(hào)
postmaster@extmail.org
extmail

管理員帳號(hào)
Root
abc.com相當(dāng)于grub的md5密碼

如果重啟后發(fā)現(xiàn)登錄時(shí)提示DBI connect ......can't connect to mysql server
則需要啟動(dòng)MySQL
service mysqld start

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末仔粥,一起剝皮案震驚了整個(gè)濱河市婴谱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌躯泰,老刑警劉巖谭羔,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異斟冕,居然都是意外死亡口糕,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)磕蛇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)景描,“玉大人十办,你說(shuō)我怎么就攤上這事〕祝” “怎么了向族?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)棠绘。 經(jīng)常有香客問(wèn)我件相,道長(zhǎng),這世上最難降的妖魔是什么氧苍? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任夜矗,我火速辦了婚禮,結(jié)果婚禮上让虐,老公的妹妹穿的比我還像新娘紊撕。我一直安慰自己,他們只是感情好赡突,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布对扶。 她就那樣靜靜地躺著,像睡著了一般惭缰。 火紅的嫁衣襯著肌膚如雪浪南。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,007評(píng)論 1 284
  • 那天漱受,我揣著相機(jī)與錄音络凿,去河邊找鬼。 笑死昂羡,一個(gè)胖子當(dāng)著我的面吹牛喷众,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播紧憾,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼昌渤!你這毒婦竟也來(lái)了赴穗?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤膀息,失蹤者是張志新(化名)和其女友劉穎般眉,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體潜支,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡甸赃,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了冗酿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片埠对。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡络断,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出项玛,到底是詐尸還是另有隱情貌笨,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布襟沮,位于F島的核電站锥惋,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏开伏。R本人自食惡果不足惜膀跌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望固灵。 院中可真熱鬧捅伤,春花似錦、人聲如沸怎虫。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)大审。三九已至蘸际,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間徒扶,已是汗流浹背粮彤。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留姜骡,地道東北人导坟。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像圈澈,于是被迫代替她去往敵國(guó)和親惫周。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容