sendmail是最重要的郵件傳輸**程式。理解電子郵件的工作模式是非常重要的。一般情況下,我們把電子郵件程式分解成使用者**,傳輸**和投遞**。 使用者**用來接受使用者的指令,將使用者的信件傳送至信件傳輸**,如:outlook express、foxmail等。而投遞**則從信件傳輸**取得信件傳送至終端使用者的郵箱,如:procmail。
當使用者試圖傳送一封電子郵件的時候,他並不能直接將信件傳送到對方的機器上,使用者**必須試圖去尋找乙個信件傳輸**,把郵件提交給它。信件傳輸**得到了郵件後,首先將它儲存在自身的緩衝佇列中,然後,根據郵件的目標位址,信件傳輸**程式將找到應該對這個目標位址負責的郵件傳輸**伺服器, 並且通過網路將郵件傳送給它。對方的伺服器接收到郵件之後,將其緩衝儲存在本地,直到電子郵件的接收者察看自己的電子信箱。
顯然,郵件傳輸是從伺服器到伺服器的,而且每個使用者必須擁有伺服器上儲存資訊的空間(稱為信箱)才能接受郵件(傳送郵件不受這個限制)。可以看到,乙個郵件傳輸**的主要工作是監視使用者**的請求,根據電子郵件的目標位址找出對應的郵件伺服器,將信件在伺服器之間傳輸並且將接收到的郵件緩衝或者 提交給最終投遞程式。有許多的程式可以作為信件傳輸**,但是sendmail是其中最重要的乙個,事實證明它可以支援數千甚至更多的使用者,而且占用的系統資源相當少。不過,sendmail的配置十分複雜,因此,也有人使用另外的一些工具,如qmail、postfix等等。
下面就如何在linux下利用sendmail架設mail伺服器作介紹:
一. 安裝sendmail。
完全安裝red hat linux 9.0時,sendmail就會自動內建,版本號為8.12.8-4。如果你不確定linux是否已經安裝有sendmail,可以輸入以下命令檢視:
[root@ahpeng root] rpm –qa grep sendmail
如果確定沒有安裝,請在圖形介面下依次選擇單擊「主選單-系統設定-新增刪除應用程式」,然後在開啟的「軟體包管理」視窗裡選中「郵件伺服器」選項,點「更新」後按照提示安裝即可。
另一種辦法是:直接插入linux第1張安裝光碟,選擇/redhat/rpms目錄下的sendmail-8.12.8-4.i386.rpm安裝包,之後執行[root@ahpeng rpms] # rpm -ivh sendmail-8.12.8-4.i386.rpm即可開始安裝,再用此方法在第3張安裝光碟的同目錄下依次安裝sendmail-cf.8.12.8-4.i386.rpm、sendmail-doc. 8.12.8-4.i386.rpm。
二. 啟動sendmail服務系統。
筆者建議使用帶引數的sendmail命令控制郵件伺服器的執行:[root@ahpeng root]#
sendmail -bd –q12h,後跟的引數解釋如下:
-b:設定sendmail服務執行於後台。
-d:指定sendmail以daemon(守護程序)方式執行。
-q:設定當sendmail無法成功傳送郵件時,就將郵件儲存在佇列裡,並指定儲存時間。上面的12h表示保留12小時。
此外,要檢測sendmail伺服器是否正常執行,可以使用命令列:[root@ahpeng root] # /etc/rc.d/init.d/sendmail status。
三. 配置sendmail。
sendmail.cf的配置語法比較難懂,一般資料上都是採用m4巨集處理程式來生成所需的sendmail.cf檔案(使用m4編譯工具一般不容易出錯,還可避免某些帶有安全漏洞的巨集對伺服器造成的破壞)。其配置檔案位於/etc/mail/sendmail.cf,在建立的過程中還需要乙個模板檔案,linux自帶有乙個模板檔案,位於/etc/mail/sendmail.mc。故可以直接通過修改sendmail.mc模板來達到定製sendmail.cf檔案的目的,而不必去死啃哪些難理解的配置命令。配置步驟為:
第一步:用模板檔案sendmail.mc生成sendmail.cf配置檔案,並匯出到/etc/mail/目錄下,使用命令行為:m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
第二步:再用[root@ahpeng root] /etc/rc.d/init.d/sendmail restart命令列重啟sendmail。
至此,郵件服務系統配置完成,已經正常工作。接下來就是建立具體的帳戶了。
四. 建立電子郵件新帳號。
此步驟相對簡單,只需在linux裡新增乙個使用者即可。依次進入「主選單-系統設定-用
戶和組群」選項,接著開啟「red hat使用者管理器」對話方塊,點「新增使用者」按鈕,在接著出現的「建立新使用者」視窗中輸入使用者名稱及密碼即可。
命令列方式為:[root@ahpeng root]#adduser maila -p pass,表示建立了乙個maila的帳號,密碼為pass。
五. 限制單個使用者郵箱容量。
如果對使用者的郵件容量不加限制,伺服器的硬碟是不堪重負的。這可以使用「郵件限額」功能來實現:因為電子郵件的暫存空間是位於/var/spool/mail目錄下的,所以只需通過磁碟配額設定每乙個郵件帳戶在此目錄下能使用的最大空間即可。
六. 單一使用者設定多個郵件位址。
首先,新增乙個賬號mailc,然後用linux的文字編輯器開啟/etc/aliases,在裡面加上:dearpeter: mailc和truepeter: mailc這兩個命令列;然後在命令視窗執行newaliases命令,以要求sendmail重新讀取/etc/aliases檔案。如果正確無誤,會出現一段回應訊息,表示配置成功。這樣就可以使用2個位址給mailc發信,而mailc則只需用其中乙個賬號就可接收寄給以上2個位址的所有郵件。
經過以上步驟後,應該就可以用outlook express正常傳送郵件了,但這時還不能用outlook express從伺服器端收取郵件的,因為sendmail預設狀態並不具備pop3功能,我們還得自己安裝並啟用它。
1. pop3(imap)伺服器安裝。
第一步:用以下命令列檢查系統是否安裝:
[root@ahpeng root]# rpm -qa imap
imap-2001a-18
第二步:插入第2張安裝光碟,使用下面的命令列開始安裝:
[root@ahpeng root]#cd /mnt/cdrom/redhat/rpms
[root@ahpeng root]#rpm -ivh imap-2001a-18.i386.rpm
2. 啟用pop3(imap)服務。
pop3服務:請先修改/etc/xinetd.d/ipop3檔案,將其中的「disable=yes」改為「disable=no」後儲存;然後重新啟動xinetd程式來讀取這個修改過的配置檔案,使之生效:
[root@ahpeng root]#/etc/rc.d/init.d/xinetd reload
啟動imap服務的步驟跟pop3一樣,只是imap的配置檔案為/etc/xinetd.d/imap罷了。經過這些折騰,你的linux已經是一台郵件伺服器了!大家學會了嗎?
Linux SendMail服務啟動慢總結
在 centos release 6.6 上啟動sendmail服務時發現服務啟動過程非常慢,基本上要耗費3分多鐘。有點納悶 什麼原因導致sendmail啟動這麼慢?搜尋了這方面的一些資料,結合自己的理解,把它梳理一遍。權當筆記。shutting down sm client ok shutting...
Linux SendMail服務啟動慢總結
在 centos release 6.6 上啟動sendmail服務時發現服務啟動過程非常慢,基本上要耗費3分多鐘。有點納悶 什麼原因導致sendmail啟動這麼慢?搜尋了這方面的一些資料,結合自己的理解,把它梳理一遍。權當筆記。root mysql t01 bin service sendmail...
安裝Docker(yum安裝)
確定你是centos7及以上版本 root 192 desktop cat etc redhat release centos linux release 7.2.1511 core 3.yum安裝gcc相關 yum y install gcc yum y install gcc c 4.解除安裝舊...