史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 網路疑難應用技術研討區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2004-07-28, 11:22 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 FreeBSD下建立MAIL服務

英特網電子郵件系統包括兩個部分:郵件用戶代理(MUA)和郵件傳輸代理(MTA)。MUA是用戶用來閱讀和撰寫郵件的程序,比如Foxmail、Outlook等;而MTA則是負責傳送郵件的服務,比如Sendmail、Qmail等。


MTA取得要傳送的電子郵件之後,首先檢查「傳送給:」或者「TO:」後面的位址。


檢視「@」後面的接收域名是否存在於域名伺服器(DNS)之中。


DNS是英特網的名稱解析資料庫,其中含有一些稱為MX(郵件交換者)的記錄,這些記錄會表明哪些主機會為這個域名傳送郵件。

在傳送電子郵件的主機上也有一些MTA正在執行,並且可以與用戶的MTA對話。

會話結束後,這兩個MTA就傳送和接收這封電子郵件,然後相互中斷連線。一旦遠處的MTA得到了這個郵件,它就會把郵件送給接收者所在地的MUA,MUA再把郵件送給接收者。


這就是一個電子郵件傳送的整個程序。本期我將給大家如何建立一個完全免費的電子郵件伺服器。其中,我們所需要用到的軟體和元件有qmail、vpopmail、ezmlm、qmailadmin、igenus、vqsignup。


1、Qmail

同sendmail相比,qmail更加簡潔,但通過addd-on,qmail的特性已同sendmail不相上下,而效能更是比sendmail高出許多!同時Qmail沒有令管理員頭痛的複雜的離譜的配置程序及安全漏洞。同其他郵件系統相比,優勢更是明顯。當然,我們也正是看中了Qmail的安全性和易用性才選項了它作為本次的主角。qmail使得分佈式郵件系統 更加容易實現。而一般來說,為了支持大規模和超大規模的用戶容量,郵件存儲方式將更多的依靠分佈式存儲進行。


2、vpopmail


vpopmail是www.inter7.com推出的qmail的一個add-on元件。vpopmail的功能是解決qmail、postfix等MTA系統中的虛擬域問題。其實qmail本身就提供對虛擬郵件域的支持,但是使用起來不很方便,vpopmail使得虛擬域更易於使用和維護。而且,由於vpopmail支持Oracle、Sysbase、MySQL等大型資料庫,並且可以提供以LDAP方式對用戶資訊進行存儲。以上種種功能使得我們可以通過使用vpopmail建立和維護一個擁有幾K、幾M、幾十M甚至更多用戶的大型分佈式郵件系統。

3、ezmlm


ezmlm是關於qmail的一個高效、易用的郵件列表管理器,用戶可以使用它新增自己的郵件列表。ezmlm 非常可靠,即使面臨系統突然斷電的嚴重問題,它也不會丟失郵件。ezmlm可以處理超大規模的郵件列表而不會受系統資源的限制。

4、qmailadmin

qmailadmin是相容於vpopmail的一個用戶郵件系統的管理界面,使用qmailadmin將使你方便的管理郵件用戶及郵件列表。Qmailadmin可以讓您在任何地方,以WEB的方式對你郵件伺服器內的虛擬郵件域,域用戶以及郵件列表進行管理。

5、igenus

iGENUS是一套免費的Webmail接頭程序。iGENUS可以在已經建立好的qmail+vpopmail+Mysql郵件系統基礎上提供Webmail服務,讓用戶可以通過IE瀏覽器在任何有網際網路接入的地方對自己的電子郵箱進行管理。



iGENUS2 是由 PHP 寫成,採用直接對 qmail 的 Maildir 進行讀寫操作,因而比 IMAP/POP 方式更快一點。

6、vqsignup

vqsignup是一個關於vpopmail/qmail的處理新用戶請求的系統,它允許用戶通過Web頁面申請自己的關於vpopmail/qmail的郵件帳號。


如果希望自己的郵件系統被用戶隨意註冊的話,可以考慮使用這個元件。如果是企業內部人員使用的話,建議不允許用戶隨意註冊,以便進行管理。

一、安裝Qmail+vpopmail+ezmlm組建POP3&SMTP郵件伺服器
在FreeBSD系統安裝之後,預設的,系統採用SENDMAIL作為MTA。


我們今天的工作就是,將原來的sendmail關閉掉,更換成qmail,並用qmail建立一個穩定高效的企業郵局。

由於一個郵件伺服器內不能有兩個MTA服務,所以首先需要停用原來的SENDMAIL,然後再安裝上qmail,讓qmail來替代原來sendmail擔任的郵件傳送服務。首先編輯rc.conf這個系統配置文件,將SENDMAIL給關閉掉。


www# cd /etc
www# ee rc.conf
修改sendmail為NO
sendmail_enable="NO"
然後將rc.sendmail修改為其他檔案名,徹底關閉sendmail。
www# mv rc.sendmail rc.sendmail.old
到這一步結束,我們已經成功的將sendmail這個MTA服務給「卡嚓」掉了,接下來的事情就是安裝Qmail以及其元件。


由於qmail在安裝的時候需要對各種元件進行安裝,步驟非常煩瑣,所以在本文中選項了使用iceblood前輩製作的qmail安裝包來對qmail進行安裝。



qmail安裝包對qmail以及幾個必要元件進行打包,然後通過編製的一個安裝指令碼,一次性自動的將所有qmail元件安裝到系統上並啟動qmail。


經過筆者的測試,筆者使用該安裝包為自己所在的服務機構建立了企業郵局,至今為止,郵件正常工作半年,無任何異常情況,郵件伺服器基本上達到免維護的狀態。


Iceblood的這個qmail安裝包在國內很多站點上都有下載,讀者們可以自行搜尋下載,也可以通過以下位址獲取安裝包:
http://down.rree.com/iceblood/Qmail_...able.tar.gz。

www# cd /home/bluewolf
www# fetch http://down.rree.com/iceblood/Qmail...a.stable.tar.gz
執行完此指令後,希望將下載以上軟體包。值得一提的是,FreeBSD預設安裝的下載工具是fetch,而linux則是wget。習慣使用wget的用戶可以通過ports方式將wget安裝後使用wget進行下載。


下載完成以後,Qmail_setup-v1.55a.stable.tar.gz這個壓縮安裝包就已經在/home/bluewolf下了。

對這個壓縮包進行解壓,解壓完成後,需要對安裝指令碼進行一點調整,讓之符合本地機器的情況,然後就可以讓安裝指令碼為你把關於qmail的郵件系統安裝完成。



www# tar xvzf Qmail_setup-v1.5.4a.stable.tar.gz
cd Qmail_setup
ee setup
# 操作系統類型為FreeBSD
OS="FreeBSD"

# 預設語言為中文
_LANG="CN"

# 由於前邊我們已經安裝了apache,所以這裡不安裝apache
_INSTALLAPACHE="NO"

# 驗證需要增加qmail用戶,如果已經增加,可選項NO
_ADDQMAILUSERS="YES"

# 郵件系統的域名,完成後用戶郵件位址將為xxx@wolfcity.cn這種格式
_DOMAIN=wolfcity.cn

# 郵箱管理員密碼
_MAILPASSWD=iambluewolf

# CGI路徑
_CGIBIN=/usr/local/apache/cgi-bin

# Html路徑
_HTMLPATH=/usr/local/apache/htdocs

###########--------Advanced set--------#################
# 設定郵箱容量,服務機構是Byte,自行按照需要計算郵箱容量,範例為50M
_MAILSIZE=50000000
# 允許域名反查IP,建議使用預設設定
_USERCRUISE=n
# apache 安裝路徑
_APACHEPATH=/usr/local
# 不使用系統用戶驗證
_SYSTEMPASS=n
# 安裝 vpopmail
_VPOPMAIL="YES"
# 安裝 ezmlm
_EZMLMIN="YES"
# ezmlm coding
_EZMLM=ch_GB
# 安裝 autorespond
_AUTORESPOND="YES"
# 安裝 QmailAdmin
_QMAILADMIN="YES"

##########--------SqWebMail set--------#############
# Sqwebmail為CGI的WEBMAIL,外觀不如Igenus好看,可以不用安裝。
_WEBMAIL="NO"
# webmail coding set.have "iso","gb2312","big5" and more.
_MIMESET=gb2312
# webmail use SSL,"YES" or "NO"
_WEBHTTPS="NO"

##########--------SQL set---------################
# 驗證使用資料庫
_SQL=y
# mysql 主機
_SQLHOST=localhost
# mysql 用戶
_SQLUSER=root
# mysql 密碼
_SQLPASS=iambluewolf
# include path
_INCDIR=/usr/local/include/mysql
# lib file path
_LIBDIR=/usr/local/lib/mysql

修改安裝指令碼完成以後,我們就可以通過這個安裝指令碼來進行安裝了。首先賦予這個文件執行的權限,讓該檔案允許被執行。


然後直接執行該安裝指令碼,對qmail以及各元件進行安裝。
www# chmod 700 ./setup
www# ./setup
由於MYSQL的版本的不同,執行後可能會出現兩種提示,一種是出現字串進度條提示安裝進度;而另外一個情況就是提示出錯。

一般出錯內容會是以下內容:
Sorrt,You not have libmysqlclient.so.10
該提示則是表示系統沒有找到這個文件,那是因為MYSQL使用了新的版本,這個文件已經更名為了libmysqlclient.so.12。我們進入MYSQL的lib目錄看看是否是這個文件。


www# cd /usr/local/mysql/lib/mysql
www# ls
www# cd /usr/local/mysql/lib/mysql
www# ls
total 1154
drwxr-xr-x 2 root wheel 512 Dec 31 11:10 .
drwxr-xr-x 3 root wheel 512 Dec 31 11:10 ..
-rw-r--r-- 1 root wheel 11654 Dec 31 11:10 libdbug.a
-rw-r--r-- 1 root wheel 34894 Dec 31 11:10 libheap.a
-rw-r--r-- 1 root wheel 15018 Dec 31 11:10 libmerge.a
-rw-r--r-- 1 root wheel 260826 Dec 31 11:10 libmyisam.a
-rw-r--r-- 1 root wheel 26038 Dec 31 11:10 libmyisammrg.a
-rwxrwx--- 1 root wheel 221190 Dec 31 11:10 libmysqlclient.a
-rwxr-xr-x 1 root wheel 779 Dec 31 11:10 libmysqlclient.la
lrwxr-xr-x 1 root wheel 20 Dec 31 11:10 libmysqlclient.so -> libmysqlclient.so.12
-rwxr-xr-x 1 root wheel 157171 Dec 31 11:10 libmysqlclient.so.12
-rw-r--r-- 1 root wheel 31260 Dec 31 11:10 libmystrings.a
-rw-r--r-- 1 root wheel 241716 Dec 31 11:10 libmysys.a
-rw-r--r-- 1 root wheel 99844 Dec 31 11:10 libnisam.a
-rw-r--r-- 1 root wheel 5882 Dec 31 11:10 libvio.a


通過ls列目錄,我們可以發現目錄下只有一個libmysqlclient.so.12,而沒有libmysqlclient.so.10。現在所需要做的事情就是將安裝指令碼裡涉及到libmysqlclient.so.10修改為libmysqlclient.so.12,然後重新進行安裝。
www# cd /home/bluewolf/Qmail_setup
www# ee setup


使用Ctrl+y進行搜尋,搜尋libmysqlclient.so.10,找到後將之更換為libmysqlclient.so.12,配置文件中一共有兩處,應該是分別位於143行和145行。修改完成後,儲存退出。

然後重新執行./setup進行安裝。


當系統重新回到www# 提示號後,Qmail就已經安裝完成功,並且系統已經自動的將qmail定制為了自動啟動的系統行程。

根據用戶需要,以後可以通過qmail 指令來對qmail服務進行管理。


如果需要停止qmail的話,可以使用qmail stop指令。如果需要開啟qmail服務的話,可以使用qmail start來手動啟動qmail程序。


到這裡為止,一個關於qmail的郵件伺服器就已經搭建成功了,這個郵件伺服器可以使用POP3以及SMTP的方式進行郵件收發。


2、用iGENUS提供Webmail
vpopmail使用了一個pw_uid來對用戶id進行標示,使得用戶具有唯一性。但是iGENUS卻是使用的pw_id來進行標示。這就意味著兩者不能統一,想到的一個最簡單的辦法就是新增立一個address 表,用這個表來解決問題,讓我們可以使用igenus中的個人通訊錄。


不要以為難度很高,還是那句口號,跟我一起做,你就能成功。


由於mysql完全支持SQL語句,所以我們需要可以使用常用的SQL語句來建立這個表並設定相應的link。首先當然是要通過mysql的驗證,然後才能對資料庫進行操作。


www# /usr/local/mysql/bin/mysql --user=root –p
Enter password:

mysql> use vpopmail
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with –A

Database changed
mysql> create table address;
ERROR 1113: A table must have at least 1 column
mysql> create table address
-> (
-> id int(11) unsigned NOT NULL auto_increment,
-> pw_id int(5) unsigned NOT NULL default '0',
-> name varchar(64) NOT NULL default '',
-> email varchar(128) NOT NULL default '',
-> UNIQUE KEY id (id),
-> KEY pw_id (pw_id)
-> );
Query OK, 0 rows affected (0.02 sec)

mysql>


修改表:
mysql> use vpopmail;
Database changed
mysql> alter table vpopmail drop primary key;
Query OK, 1 row affected (0.09 sec)
Records: 1 Duplicates: 0 Warnings: 0

mysql> alter table vpopmail add column pw_id int(5) NOT NULL primary key auto_increment;
Query OK, 1 row affected (0.05 sec)
Records: 1 Duplicates: 0 Warnings: 0

mysql>


iGENUS要求APACHE的執行用戶必須為vpopmail,組必須為vchkpw。
ee /usr/local/apache/conf/httpd.conf
使用ctrl + y,找到「nobody」這個預設的apache啟動用戶,然後將USER和GROUP分別修改為vpopmail和vchkpw。
儲存退出,然後重新啟動apache讓設定生效
/usr/local/apache/bin/apachectl restart

<IfModule !mpm_winnt.c>
<IfModule !mpm_netware.c>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# . On SCO (ODT 3) use "User nouser" and "Group nogroup".
# . On HPUX you may not be able to use shared memory as nobody, and the
# suggested workaround is to create a user www and use that user.
# NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET)
# when the value of (unsigned)Group is above 60000;
# don't use Group #-1 on these systems!
#

User vpopmail
Group vchkpw


</IfModule>
</IfModule>


在http://www.igenus.org下載igenus最新的版本。
www# tar xvzf igenus_2_xxxxxx.tar.gz
mv igenus /usr/local/apache/htdocs/
mkdir /usr/local/apache/htdocs/temp
chown –R vpopmail /usr/local/apache/htdocs/temp
chgrp –R vchkpw /usr/local/apache/hdocs/temp
然後編輯iGENUS的配置文件,修改配置。
ee /usr/local/apache/htdocs/igenus/config_inc.conf

$CFG_BASEPATH = "/usr/local/apache/htdocs/igenus"; //設定igenus的絕對路徑

// Mysql
$CFG_MYSQL_HOST = 'localhost'; //設定MYSQL連接方式
$CFG_MYSQL_USER = 'root'; //設定MYSQL用戶名
$CFG_MYSQL_PASS = 'ilovebluewolf'; //設定MYSQL用戶的密碼
$CFG_MYSQL_DB = 'vpopmail'; // 設定資料庫名

// default for Language
$CFG_LANGUAGE = gb;
$CFG_CHARSET[''] = "gb2312";
$CFG_CHARSET['gb'] = "gb2312";
$CFG_CHARSET['big'] = "big5";
$CFG_CHARSET['en'] = ""; // iso8859-1

設定完成後儲存退出,我們就可以通過http://www.wolfcity.cn/igenus/來對WEBMAIL進行訪問了。

到這裡QMAIL就已經安裝成功了,我們可以通過http://www.wolfcity.cn/cgi-bin/qmai...QMAIL進行管理。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
回覆時引用此帖
發文 回覆



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 12:09 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1