1. 程式人生 > >LINUX下郵件伺服器搭建(SENDMAIL)(1.0)

LINUX下郵件伺服器搭建(SENDMAIL)(1.0)

小編就喜歡直接寫步驟,相關概念以後完善的時候再寫。OK,就直接開始sendmail郵件伺服器的搭建。

第一步還是看sendmail服務裝了沒有,執行下圖命令


如果沒有安裝,還是用介面化的點點點吧,這種方式小編比較喜歡(這裡省去掛載光碟步驟,小編在以前也說過步驟)


如果沒有安裝,就直接找到這個rpm包來安裝

這一點小編不得不解釋一下相關概念,郵件伺服器不是單獨使用的,在應用例項中都是與dns伺服器配合使用的,所以在搭建sendmail伺服器之前必須配置好dns伺服器,有關dns的配置可以看小編dns的配置教程,就不多解釋了。

如果dns伺服器和sendmail用的是同一個域,這裡就不用修改


然後為了讓dns能夠識別郵件伺服器,所以我們需要在正向解析和逆向解析配置檔案中進行宣告

正向解析檔案


多了這兩行,小編來解釋一下。

dns郵件交換記錄(MX):郵件交換記錄是用於查詢郵件伺服器位置的dns資源記錄。

10表示優先等級

下面一行就是和上面一樣啦,定義一個mail的主機

反向解析檔案


正向解析和反向解析和以前的dns配置差不多,只是多了一行MX記錄

我們的ip地址沒有變,所以在/etc/resolv.conf中不需要進行改動


然後我們重啟dns服務,看是否能正常解析,順便看一下我們的配置有沒有出錯


成功啟動,千萬不要激動,這裡說一下情況,如果網絡卡配置改變那麼dns的伺服器ip也要改變,網絡卡配置改變記得要重啟才能生效,否則還是你沒修改之前的狀態,這裡重啟依然是成功的。然後我們繼續驗證


這裡用得是host (nslookup,dig都可以)我們解析到了192.168.10.6(本機ip)的兩個域名,而mail那個就是我們剛剛配置的,到這裡才說明剛才我們的配置沒有錯誤

然後我們修改smtp的偵聽範圍

由於sendmail主配置檔案sendmail.cf檔案的內容比較複雜,修改時的難度較大,所以我們可以先修改/etc/mail/sendmail.mc檔案,然後再將該檔案的內容匯入到sendmail.cf檔案。

我們用vi編輯器開啟它 vi /etc/mail/sendmail.mc


由於該檔案內容較多,小編也找了好久,知道了它在116行。所以在命令列模式下鍵盤輸入:116回車就找到了


預設的addr=127.0.0.1,這裡修改成0.0.0.0

還有一處需要修改的地方,就是指定我們建的域,這裡在155行,同樣的方法定位到155行


改成我們自己的域名,小編的是mez.com記住開頭千萬不要加上mail,dns,www,那只是代表主機名,後面的才是我們自己的域名。

這裡我們需要用到了一個M4工具,它的作用就是讓我們把修改的.mc模版內容定位並追加到郵件伺服器的核心配置檔案sendmail.cf中。預設情況下伺服器已安裝該報,保險起見,我們執行以下命令,看一下m4工具是否安裝。


所以我們用m4工具生成sendmail.cf


然後我們來修改local-host-names檔案,該檔案用來定義收發郵件的主機別名。為了使郵件伺服器正常工作,必須在該檔案中新增主機名或主機別名,否則會提示錯誤。



OK,到此已經配置完畢,我們重啟服務就可以了。


這裡啟動的時間比較長,各位不用著急,請耐心等待就好。

還有就是補充一下,這裡我們只是啟動了郵件伺服器發郵件的功能,我們也知道,發郵件用的是smtp協議,收郵件用的是pop3和IMAP。所以我們還要安裝收郵件的IMAP和pop服務


對應的rpm包


注意:如果安裝不成功,那是因為dovecot還依賴兩個包(上次小編說錯了,原來不能完全忽略安裝順序)


安裝了這兩個包,在安裝dovecot就不會報錯了

安裝完畢後,我們開啟dovecot服務,就會開啟收郵件的功能啦!


如果要設定成開機自動啟動,可以輸入chkconfig命令,適用於任何服務


使用當前使用者(root)mez使用者發郵件,郵件內容為"test sendmail",郵件標題為"mail1"。並使用mez的身份登入郵箱,檢視郵件是否存在。

發郵件使用以下命令:echo "郵件內容"|mail -s "郵件標題收件人

收郵件使用以下命令:mutt -f pop://使用者名稱@郵件伺服器地址



從這裡可以看出,該信件是由root發出,to到mez那個郵箱,主題(subject:mail1),下面是內容,我們回車開啟它


這裡就是我們收到的那封郵件,測試成功。

這裡小編在linux機器上測試的,也可以在Windows上測試(需要在一個區域網內)

我們看是否能連通


然後我們就需要藉助發郵件的軟體之一outlook(這點就GG,一個Outlook虛擬機器根本不會有,一般的機器上也不會有,除非下載了完整的office,所以小編一狠心就下載了,比較闊怕的是,一下就是幾個小時啊,安裝的也太慢了吧,唉,微軟不知道咋說,想測試的話一定要有耐心。)幾個小時過後,就發現多了這幾個圖示,原來把所有的office軟體都裝上了(由於虛擬機器上的Windows還需要下載,這裡小編用的是自己的主機(win8)不和dhcp伺服器分配的地址在一個網段)

唉,誰叫小編心善呢,這裡說一下Outlook的用法(我也試了好久呢)


上面的我第一次開啟的介面,這裡就用自己的qq郵箱測試成功的(小編成功填的是[email protected]

填寫我們的郵件伺服器的賬戶名


這裡要注意,我們填寫的賬戶一定要開啟相關服務才可以,否則一直就是連線失敗,步驟也貼下來

我們開啟qq郵箱


點選設定


點選賬戶


這裡可以看出小編已經開啟的兩項服務,預設都是關閉的

下面小編來演示開啟exchange服務


點選開啟出現上面介面,這時我們需要密保手機發送簡訊(一定要傳送,它會檢測到)如果傳送完畢,我們就點選我已傳送


這裡會生成一個密碼,我們記下這個密碼

在回來看服務


已經開啟了。

然後我們在選擇服務的時候它會讓你選擇伺服器地址,如果是pop3,就是pop3.qq.com,同理imap就是imap.qq.com,我們寫好後,點選連線就會出現輸入密碼。(一開始小編認為是讓輸入qq密碼呢,呵呵)這裡輸入的密碼就是剛才生成的密碼,我們輸入點選回車就進入Outlook介面啦

(這裡小編想了想,小編搭建的郵件是mail.mez.com,這裡應該也是填寫的是我們郵件伺服器的域名,至於後來的登入密碼,可能直接連線,可能是我們那個mez的使用者的使用者密碼。當然,這裡都是小編的猜想,需要各位來驗證)(還有就是,小編輸入的[email protected]是否正確,也可能是但是,192.168.10.6對應的域名就是mail.mez.com這樣說的話也不算錯。哎呀,這就需要小編後期的更新嘍,敬請期待!微笑

這裡根據需求選擇賬戶型別我們做的就是pop和IMAP



哎呀,終於進去了,不容易,心疼自己3秒鐘!!!

由於小編這裡用的是本機,所以outlook無法連線到我們的郵件伺服器上,各位在做的時候需要在一個區域網內測試。

(搭建的伺服器只能在區域網內收發郵件,如果要傳送到外網需要連線外網且需要搭建Apache伺服器:HTTPD。還有就是比如163郵箱,QQ郵箱的設定可能會拒絕傳送請求,我們會在/var/spool/mail/root中看到拒絕資訊。當然了,這裡小編主要說的還是senmail伺服器,至於阿帕奇伺服器,小編會在以後進行更新,如果大家對外網傳送郵件感興趣,也可以搜一下相關教程。)

到此為止,郵件伺服器的收發功能已經全部完成。在最後,小編補充一下相關內容。

pop3預設埠號:110   smtp預設埠號:25  imap預設埠號:143

我們可以用netstat命令來測試埠狀態(注意:測試狀態必須確保服務是開啟的)

sendmail的除錯

搭建sendmail伺服器後,應該儘可能快的保證伺服器正常使用。一種快速有效的測試方法就是使用telnet命令直接直接登入伺服器的25埠,並收發郵件以及對sendmail進行測試。

我們還是要先看telnet服務是否安裝


對應的rpm包


安裝不成功就說明需要先安裝依賴的另一個rpm包


在使用telnet登入時,需要先建立一些使用者,root使用者不能被遠端登入



在這裡mez使用者小編已經建立,就直接用的mez賬戶登入,其他的使用者也是一樣的方法。當然,在首次登入並不會一次性成功。下面小編列舉一下出錯的解決方案供大家參考。

1.  telnet: Unable to connect to remote host: No route to host

處理這種情況方法:
(1)確認ip地址是否正確?
(2)確認ip地址對應的主機是否已經開機?
(3)如果主機已經啟動,確認路由設定是否設定正確?(使用route命令檢視)
(4)如果主機已經啟動,確認主機上是否開啟了telnet服務?(使用netstat命令檢視,TCP的23埠是否有LISTEN狀態的行)

(5)如果主機已經啟動telnet服務,確認防火牆是否放開了23埠的訪問?(使用service iptables status檢視防火牆的監聽規則和是否處於開啟狀態)

2.  telnet: Unable to connect to remote host: Connection refused

出現這種情況,很有可能是防火牆拒絕了訪問

上面就是小編在第一次做的時候遇到的兩種情況,所以特意從網上找到的完整解決方案,並陳列給大家.

祝大家成功!!!

相關推薦

LINUX郵件伺服器搭建SENDMAIL1.0

小編就喜歡直接寫步驟,相關概念以後完善的時候再寫。OK,就直接開始sendmail郵件伺服器的搭建。第一步還是看sendmail服務裝了沒有,執行下圖命令如果沒有安裝,還是用介面化的點點點吧,這種方式小編比較喜歡(這裡省去掛載光碟步驟,小編在以前也說過步驟)如果沒有安裝,就直

CentOSGit伺服器搭建與客戶端windows和centos搭建

一.伺服器端 1.yum安裝Git伺服器 yum install -y git 2.建立一個git使用者,用來執行git服務 useradd git 3.建立客戶端登入證書 注,收集所有需要登入的使用者的公鑰,就是他們自己生成的id_rsa.pub檔案,把所有公鑰複製到/

LinuxFTP伺服器搭建與配置

環境檢查 [[email protected] ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [[email protected] ~]# uname -r 2.6.32-696.el6.x86_64

LinuxSamba伺服器搭建

linux檔案共享之samba伺服器 ——ubuntu 宗旨:技術的學習是有限的,分享的精神是無限的。 關閉LINUX防火牆命令: #ufwdisable 然後就在windows下ping一下linux的IP,如果能ping通,就可以繼續下面的內容,如果ping不通就

LinuxRabbitMQ伺服器搭建

系統環境作業系統:CentOS6.9erlang:OTP 19.3rabbitmq:rabbitmq-server 3.6.12安裝步驟安裝erlang1,安裝預環境通過yum安裝以下元件,執行命令: [[email protected] erlang]# yum -y install make g

關於MQTT在Linux伺服器搭建及本地測試

因工作需要,需要測試MQTT、DDPush、XMPP三種推送的壓力測試及在android手機下的推送平臺的優勢,要分別對其demo和伺服器進行搭建及測試。 本文是關於MQTT伺服器搭建的步驟,及其中所遇到的問題做的整理。 先是在虛擬機器下搭建了linux系統。 接下來按照h

linuxsvn伺服器搭建及建立分支

系統環境:Centos 6.5一 搭建svn伺服器第一步:通過yum命令安裝svnserve,命令如下:>yum -y install subversion此命令會全自動安裝svn伺服器相關服務和依賴,安裝完成會自動停止命令執行若需檢視svn安裝位置,可以用以下命令:&

HBase叢集的搭建版本:2.1.0

(004)HBase是一個在HDFS上開發的面向列的分散式資料庫。如果需要實時地隨機訪問超大規模資料集,就可以使用HBase這一Hadoop應用了 HBase叢集的搭建 前提條件 Hadoop叢集 ZooKeeper叢集 JDK 原料 h

P2P-BT對端管理協議附BT協議1.0

對端管理 指的是遠端peer集合的管理(雖然自身client也可以視為一個peer,但對端管理不包括自身peer) 一個客戶端(client)必須維持與每一個遠端peer連線的狀態資訊,即1V1關係(本端對某個遠端peer) 在本程式碼中PcPeer指這種

初學Qt——程式打包環境vs2012+qt5.1.0

說來可笑,網上那麼多的教程,偏偏結尾的時候就沒有一個能詳細的講下關於程式的釋出。開發Qt是這樣,剛開始做web也是這樣,因為是自學的,所以都沒人可以教下,結果到了專案完成的最後總是要花費成噸的時間去查資料,瞭解怎麼釋出打包這些,好了,廢話不多說,進入正題吧。

Linux系統郵件伺服器搭建Postfix+Dovecot

對於網站來說,傳送各種例如註冊通知的郵件是很基本的一個需求,之前我一直用的是騰訊的企業郵箱,感覺挺方便的,直接可以繫結QQ郵箱接收郵件,網站配置一下SMTP也就可以發出郵件。但是在前幾天由於有重要資訊需要立即通知使用者,所以選擇了群發郵件的方式。在當我以為一切都是辣麼完美的時

LinuxNFS伺服器搭建與配置

一、NFS服務簡介  NFS 就是 Network FileSystem 的縮寫,最早之前是由sun 這家公司所發展出來的。 它最大的功能就是可以透過網路,讓不同的機器、不同的作業系統、可以彼此分享個別的檔案 (share files)。所以,你也可以簡單的將他看做是一個檔案伺服器 (file server

james使用:windows環境james3.0.1版本郵件伺服器搭建及配置

1.介紹james是apache基金會下一款免費的提供pop3、stmp的開源免費郵件伺服器,其最新版本為james sever 3.0,網上充斥著許多2.3版本的配置,3.0使用了spring的架構,配置上有些許不同,在配置過程中爬了很多坑,特此記錄,給小夥伴們指明方向。後

linuxoracle11G DG搭建:興許驗證操作

歸檔 驗證 補充 over nts content -s 環境 fontsize linux下oracle11G DG搭建(四):興許驗證操作 環境 名稱 主庫 備庫 主機名 bjsrv shsrv 軟件版本號 RedH

從零開始搭建linuxlaravel 5.5所需環境

一個 技術 useradd color ram end php localhost aca 好的,我們已經安裝好了nginx+mysql+php了,打開[ Laravel 5.5 文檔 ] 快速入門 —— 安裝配置篇 我們看到這裏需要安裝Composer,好的,我們現在就

對於Linux伺服器程式設計2

對於驚群問題,我們可以使用一個主執行緒來接受連線,並且把這個連線套接字傳遞到子程序裡面,讓子程序來處理這個連線。這種方法需要程序間通訊:通過Unix套接字來在程序之間傳遞套接字。【注意不能使用Unix套接字***直接***傳遞描述符到子程序,因為雖然父程序和子程序獲得的檔案描述符相同,但是子程序

對於Linux伺服器程式設計1

在Linux下面,對於海量連線並且每個連線在大部分時間裡面都是不活躍的情況下,我們使用Epoll來解決C10K[C10M]問題。 1.如何使用Epoll:man Epoll。即為三個系統呼叫。 2.在伺服器擁有多個CPU的情況下,我們需要多執行緒或者多程序來幫助我們提高程式的效能,所以就需要

阿里雲伺服器搭建 踩坑日誌 修改作業系統為linux

之前購買時設定作業系統是windows的,現在因為要安裝的檔案伺服器fastFDS只支援linux的,只好把作業系統改為linux的。 1、更換系統盤 具體操作的方法參考 阿里文件: https://help.aliyun.com/document_detail/25436.html?s

linux c++ 伺服器開發

苦逼的c++程式設計師還沒找到工作,所以順便開始寫伺服器練手。。     對內容不滿意不要噴我我是寫給自己看的(把自己犯得錯誤記下來) 1.我的電腦是win10的,所以先去網上下虛擬機器,我下載了 ,然後安裝了。 2.新建了一個ubuntu 32位的虛擬電腦。(我劃分的

Linux使用docker搭建STF踩坑成功

自從經歷了Mac下docker的失敗後,一直在查詢原因,也開始自學docker。為了搞懂docker,還在某東上買了James Turnbull的書《THE DOCKER BOOK》來研究。這裡介紹的是使用Linux環境來使用docker,不過也確實是,docker本身跑的