基本功能實現篇
一、部署前基本知識了解
a)已有DNS服務器並在映射到郵件服務器的域名配置文件中進行A記錄和MX記錄的設置
列如:
@ IN MX 5      mail.ltest.com.
mail IN A                   192.168.1.2
b)郵件基本維護命令mailq 查看郵件隊列中的郵件 sendmail –q對郵件隊列進行再一次處理發送
二、組件配置及部署(發送功能配置):
第一步:安裝sendmail-8.12.10-1.i386.rpm安裝包
默認系統應已安裝改程序包
我們可使用 rpm -e -nodeps sendmail-8.12.10進行卸載程序後再次安裝該安裝包
rpm -ivh sendmail-8.12.10-1.i386.rpm
第二步:配置相關參數
cd /etc/mail
a)設置mail的服務地址
vi sendmail.mc
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
//修改為
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
b)設置smtp用戶認證方式
# vi /etc/mail/sendmail.mc
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
修改為
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
修改LOCAL_DOMAIN(`localhost.domain')dnl 為sdlp.com域名
LOCAL_DOMAIN(`sdlp.com')dnl
c)設置提供郵件服務的域名
# vi /etc/mail/local-host-names
//添加郵件服務器提供郵件服務的域名
sdlp.com
第三步:修改完主配置文件sendmail.mc後生產新的sendmail.cf文件
m4 sendmail.mc > sendmail.cf
報錯信息:sendmail.mc:10: m4: Cannot open /usr/share/sendmail-cf/m4/cf.m4: No such file or directory
這是因為沒有安裝sendmai-cf這個包
第四步:安裝該程序包
rpm -ivh sendmail-cf-8.12.10-1.i386.rpm
第五步:生成sendmail配置文件
m4 sendmail.mc > sendmail.cf
第六步:重啟服務
service sendmail start
報錯如下:
Jan 12 01:21:19 localhost sendmail[22422]: NOQUEUE: SYSERR(root): /etc/mail/sendmail.cf: line 39: unknown
configuration line "\n"
Jan 12 01:21:19 localhost sendmail[22427]: NOQUEUE: SYSERR(root): /etc/mail/sendmail.cf: line 39: unknown
configuration line "\n"
第六步:懷疑以下兩行有空格導致修改sendmail.mc 文件
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
刪除行前的空格後保存退出。
第七步:重啟sendmail服務後
查看日誌 tail -f /var/log/maillog 確認系統正常啟動
三、pop3服務器部署(收郵件功能)
相關組件安裝:
1、 確認安裝組件是否已經收集完整:
Perl-dbi-1.52-1.fc6.i386.rpm
Mysql-5.0.22-2.1.i386.rpm
Postgresql-libs-8.1.4-1.1.i386.rpm
Dovecot-1.0.-1.2.rc15.el5.i386.rpm
2、 配置dovecot
a) 在/etc目錄下修改配置文件dovecot.conf
b) 設置access配置文件允許郵件中繼
192.168.163.0 RELAY
#設置允許該域內郵件轉發
c) 重新生成配置文件access.db
makemap hash access.db
d) 重啟郵件服務
Service sendmail restart
3、 我們現在測試郵件服務器是否正常工作:
登錄郵件系統
telnet sdlp.com 25
返回如下信息:
Trying 192.168.163.111...
Connected to sdlp.com (192.168.163.111).
Escape character is '^]'.
220 localhost.localdomain ESMTP Sendmail 8.13.8/8.12.10; Wed, 1 Feb 2012 01:17:47 -0800
填寫發信人:
mail from:red@sdlp.com
填寫收信人:
rcpt to:test@sdlp.com
填寫郵件正文:
data
this is a test mail.
以句.結束
從日誌查看信件是否可以正常發送
tail -f /var/log/maillog

Feb 1 01:12:41 localhost sendmail[12276]: q119BhTP012276: Authentication-Warning: localhost.localdomain: sdlp.com [192.168.163.111] didn't use HELO protocol
Feb 1 01:13:23 localhost sendmail[12276]: q119BhTP012276: from=red@sdlp.com, size=25, class=0, nrcpts=1, msgid=<201202010913.q119BhTP012276@localhost.localdomain>, proto=SMTP, daemon=MTA, relay=sdlp.com [192.168.163.111]
Feb 1 01:13:23 localhost sendmail[12331]: q119BhTP012276: to=test@sdlp.com, ctladdr=red@sdlp.com (501/501), delay=00:00:21, xdelay=00:00:00, mailer=local, pri=30437, dsn=2.0.0, stat=Sent
顯示以上打印日誌則郵件服務器可以正常收發郵件了。我們也可以切換到test賬號進一步驗證是否成功接收了郵件。
su –test後使用mail命令
設置客戶端收發郵件時發現telnet sdlp.com 25無法telnet懷疑是防火墻導致所以關閉防火墻service iptables stop後便可以正常telnet該郵件服務器啦。
下一步我們便可以是在客戶端進行收發郵件了。
使用outlook客戶端時可以正常收發郵件但是使用其他客戶端時在收郵件時是正常的但是發送郵件時一直提示需要輸入密碼通過查看後臺日誌發現一直提示以下信息:
did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA懷疑saslauthd配置有問題。
解決方法:
cd /etc/sysconfig
修改saslauthd配置文件中的配置項值為:MECH=pam重啟服務:service saslauthd restart後重新配置客戶端問題解決。
為避免無法向其他域正常發送郵件修改正確的主機名:
1、vi /etc/sysconfig/network
設置為:HOSTNAME=sdlp.com
2、vi /etc/hosts
添加192.168.163.111 sdlp.com後保存。
恭喜你郵件服務器已經搭建成功了~
進階篇
郵件服務器與webmail的整合
安裝介質清單
以下安裝介質可在http://openwebmail.org官網下載得到。
Openwebmail-2.52-1.i386.rpm
Perl-suidperl-5.8.1-92.i386.rpm
Perl-cgi-speedcgi-2.22-1.1.fc1.rf.i386.rpm
Perl-text-iconv-1.2-fc1.i386.rpm
Perl-compress-zlib-1.16-12.i386.rpm
openwebmail-data-2.53-1.i386.rpm
由於openwebmail使用perl語言開發的所以我們必須搭建perl的環境才能順利安裝openwebmail程序。
第一步安裝必需的rpm程序包:
安裝順序如下:
a)rpm -ivh Perl-suidperl-5.8.1-92.i386.rpm
b)rpm -ivh Perl-compress-zlib-1.16-12.i386.rpm
c)rpm –ivh Perl-text-iconv-1.2-fc1.i386.rpm
d)rpm -ivh perl-CGI-SpeedyCGI-2.21-RH73.i386.rpm
e)在安裝openwebmail-2.53-1.i386.rpm程序包時出現錯誤信息。
f)rpm -ivh openwebmail-2.53-1.i386.rpm
提示如下錯誤信息:
error: Failed dependencies:openwebmail-data = 2.53-1 is needed by openwebmail-2.53-1.i386
下載openwebmail-data-2.53-1.i386.rpm安裝程序包
rpm -ivh openwebmail-data-2.53-1.i386.rpm 依然提示錯誤信息
發現錯誤信息為openwebmail-data-2.53-1.i386.rpm與openwebmail-2.53-1.i386.rpm互相依賴。
用以下安裝方法安裝來解決該問題:
g)rpm –ivh openwebmail-2.53-1.i386.rpm openwebmail-data-2.53-1.i386.rpm
成功安裝該程序。
h)初始化openwebmail軟件/var/www/cgi-bin/openwebmail/openwebmail-tool.pl –init提示
以下錯誤信息Can't locate Text/Iconv.pm in @INC從baidu上無法查到解決方案所以我就去官網看了一下官網說需要下載install the Text-Iconv-1.2.tar.gz包
所以我從官網下載了該程序安裝包
1)tar –xvf Text-Iconv-1.2.tar.gz
2)cd Text-Iconv-1.2
3)perl Makefile.PL
4)make
5)make test
6)make install
完成安裝該程序包後再次運行/var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init程序成功無誤運行。
7)修改配置文件
cd /var/www/cgi-bin/openwebmail/etc
vi dbm.conf
vi openwebmail.conf
domainnames sdlp.com
default_language zh_CN.GB2312退出並保存。
運行openwebmail-tool.pl –init使改動後的配置生效
a)解壓程序包:tar –xvf httpd-2.2.9.tar.gz
b)參閱INSTALL文件並按照該文件進行安裝
c)配置環境變量./configure –prefix=/apache
d)編譯適配該版本的程序make
e)安裝apache軟件 make install
f)啟動該服務並測試其正常性cd apache/bin/
使用sh apachectl start可以正常啟動httpd服務。
g)使用service httpd start提示以下錯誤信息:
httpd: unrecognized service
解決方案:
cp apachectl /etc/rc.d/init.d/httpd
然後 vi /etc/rc.d/init.d/httpd 添加(#!/bin/sh下面)
# chkconfig: 2345 50 90
退出並保存後就可以使用網上經常使用的service httpd start 命令啟動httpd服務了。
第三步:輸入http://sdlp.com/cgi-bin/openwebmail/openwebmail.pl提示
如下錯誤信息:
The requested URL http://sdlp.com/cgi-bin/openwebmail/openwebmail.p was not found on this server.
出現該錯誤信息筆者考慮到可能是apache配置文件沒有經過配置的問題所以我將apache2/conf下的http.conf修改了如下配置信息:
將ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"修改成如下信息
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/openwebmail/openwebmail.pl"
後重啟httpd服務後再次訪問該URL後又提示錯誤信息如下:
You don't have permission to access openwebmail.pl筆者在百度和google上均未找到答案所以去http://openwebmail.org/openwebmail/doc/faq.txt官網查了一下得到如下所示解決方案:在httpd.conf添加了對openwebmail允許訪問的信息:
AllowOverride All
Options ExecCGI
Order allow,deny
Allow from all
保存退出後重啟apache服務再次訪問,呵呵終於成功了。

完善篇
加速郵件服務器:
(1)使用speedcgi來加速
針對Openwebmail速度慢的缺點,可以使用speedcgi來加速。
# yum -y install perl-CGI-SpeedyCGI,安裝完後接著執行命令:“speedy_convert”,這個命令會自動設定已安裝的 OpenWebMail 以便讓其以 SpeedyCGI 方式執行。
(2)啟動HTTP資料壓縮傳送
目前openwebmail的版本是openwebmail-2.53,這個版本默認是已啟動HTTP資料壓縮傳送功能的,在登錄openwebmail時會出現“HTTP資料壓縮傳送”選項。這樣可以加速郵件服務器運行速度。
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 成功运行 的頭像
    成功运行

    成功运行的部落格

    成功运行 發表在 痞客邦 留言(0) 人氣()