Linux 的 sendmail 配置
目前成都創(chuàng)新互聯(lián)公司已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、隴南網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
配置文件
在 Linux 系統(tǒng)中,Sendmail 包括如下配置文件:
/etc/sendmail.cf
/etc/mail/access
/etc/mail/aliases
/etc/mail/local-host-names
/etc/mail/mailertable
/etc/mail/virtusertable
/etc/mail/domaintable
~/.forward
我們將會 在下面的章節(jié)中詳細(xì)介紹這些配置文件。
/etc/sendmail.cf
/etc/sendmail.cf 是 sendmail 的主配置文件。該文件存儲了正在運(yùn)行的 mailer 程序的類型信息,定義了重寫郵件地址的規(guī)則和 sendmail 命令的操作環(huán)境。因?yàn)?sendmail.cf 的語法比較復(fù)雜,我們一般不建議手動修改該配置文件。安裝了 sendmail 的 UNIX/Linux 系統(tǒng)都會帶有 sendmail.cf,而且該配置文件在大多數(shù)情況下都不需要修改就可以使用。如果用戶確實(shí)需要修改 sendmail.cf 配置文件 , 一般建議用戶基于 sendmail.mc 宏文件,利用 m4 程序來生成新的 sendmail.cf 文件。
在 RedHat Linux 系統(tǒng)中,sendmail.mc 宏文件位于 /etc/mail/ 目錄。
而 SuSE Linux 系統(tǒng)并沒有 sendmail.mc 文件,相應(yīng)的,它提供了 /etc/mail/linux.mc ( 或者 /etc/mail/linux.nullclient.mc) 替代 sendmail.mc。/etc/mail/linux.mc 是 SuSEconfig 使用 /etc/rc.config 和 /etc/rc.config.d/sendmail.rc.config (SuSE = 7.3) 或者 /etc/sysconfig/sendmail (SuSE = 8.0) 的參數(shù)而生成的宏文件。SuSEconfig 執(zhí)行 /sbin/conf.d/SuSEconfig.sendmail 腳本來構(gòu)建 .mc 文件,并執(zhí)行 m4 來生成 sendmail.cf 配置文件。用戶可以依照清單 1 所示的 SuSEconfig.sendmail 命令來生成配置文件。
清單 1. 使用 SuSEconfig.sendmail 命令生成配置文件
/ sbin/conf.d/SuSEconfig.sendmail -m4 sendmail.mc
在 sendmail.mc 配置文件中經(jīng)常出現(xiàn)如下的 m4 命令:
define:
用于定義配置文件中變量的值
divert:
用于定向 m4 進(jìn)程的輸出。
divert 被設(shè)置為 -1 時 , 取消輸出。如果 divert(-1) 在一個文本塊的前面出現(xiàn),這段文本將不會再 sendmail.cf 中出現(xiàn) . divert 被設(shè)置為 0 時來定向數(shù)據(jù)流的輸出,如 sendmail.cf,
VERSIONID:
配置文件定義版本控制信息。
dnl:
注釋掉后面的所有字符。
dnl 出現(xiàn)在行尾,表示將清除掉不想要的空白行;dnl 出現(xiàn)在行首,表示這一行將被當(dāng)成注釋。
DOMAIN:
選擇傳輸郵件的域。
FEATURE:
識別配置文件中一個特性 (Feature)。
MAILER:
識別包含在 sendmail.cf 一套郵件傳輸方法。
OSTYPE:
定義宏所使用的操作系統(tǒng),它允許 m4 程序增加同相關(guān)操作系統(tǒng)相關(guān)的文件。
undefine:
清除配置文件中的變量值。
需要注意的是,m4 宏處理器生成的 sendmail.cf 文件必須放在 /etc/ 目錄 , 而非 /etc/mail。具體的操作如清單 2 所示。
清單 2.m4 命令生成配置文件 sendmail.cf
cp /etc/sendmail.cf /etc/sendmail.cf.bak
m4 sendmail.mc sendmail.cf
在用戶修改完成 sendmail.cf 配置文件以后,最后一步操作是重新啟動 sendmail 服務(wù),具體的操作如清單 3 所示:
清單 3. 重啟 sendmail 服務(wù)
service sendmail restart
/etc/mail/access 和 access.db
access 數(shù)據(jù)庫是由 sendmail V8.9 版本引入的特性, 并在 V8.10 重得到很好的發(fā)展。它提供了一個單一集中管理的訪問規(guī)則數(shù)據(jù)庫;它可以基于發(fā)信者的姓名、地址或者 IP 來判斷是否接受 (OK)、轉(zhuǎn)發(fā) (RELAY)、拒絕 (REJECT) 或者取消 (DISCARD)。sendmail 會在接收郵件時進(jìn)行規(guī)則判斷,默認(rèn)情況下只接受本機(jī)發(fā)送的郵件。
對本地設(shè)置來說,/etc/mail/access 和 access.db 并不是必需的;只有在建立中央郵件集中服務(wù)器來處理所有郵件的時候才需要這兩個文件。
access 數(shù)據(jù)庫的配置主要有三個步驟,具體操作如下所示。
修改 /etc/mail/access 文件;修改后的內(nèi)容如清單 4 所示。
清單 4./etc/mail/access 文件內(nèi)容
localhost.localdomain RELAY
localhostRELAY
127.0.0.1RELAY
192.168.1RELAY
利用 /etc/mail/access 創(chuàng)建數(shù)據(jù)庫映射文件 access.db,命令如清單 5 所示。
清單 5. 生成數(shù)據(jù)庫映射文件 access.db
makemap hash /etc/mail/access.db /etc/mail/access
重啟 sendmail, 讀取 access.db,具體的命令如清單 3 所示。 service sendmail restart
/etc/mail/aliases 和 aliases.db
aliases 是 sendmail 郵件系統(tǒng)的別名數(shù)據(jù)庫。它可以定義郵遞列表,在機(jī)器之間轉(zhuǎn)發(fā)郵件,或者允許用多個名字指定一個用戶。因?yàn)?Aliases 別名處理的規(guī)則是遞歸的,所以一個別名指向的目的地也可以是別名。對于每個信封,sendmail 都會在別名文件中查找本地用戶的收件人名稱。由于 Sendmail 的可能要在 aliases 文件中搜索數(shù)以千計(jì)的收件人名稱,所以一個以 DB 數(shù)據(jù)庫格式存儲的 aliases 文件副本被創(chuàng)建,并用來提高查詢的速度。
同樣,這兩個配置文件也不是必需的。如果 sendmail 是使用中央服務(wù)器的郵件處理中心處理所有郵件的話,安裝在鄰居服務(wù)器或客戶機(jī)的 aliases 和 aliases.db 文件就不需要了。 aliases 數(shù)據(jù)庫的配置主要有三個步驟,如下所示。
1.修改 /etc/mail/aliases。修改后的內(nèi)容如清單 6 所示。
清單 6. 修改后的 aliases 文件
# Basic system aliases that MUST be present.
postmaster: root
mailer-daemon: postmaster
# amavis
virusalert: root
2.根據(jù) /etc/mail/ aliases 來創(chuàng)建數(shù)據(jù)庫映射文件 aliases.db,該命令如清單 7 所示。
清單 7. 創(chuàng)建數(shù)據(jù)庫映射文件 aliases.db
makemap hash /etc/mail/aliases.db /etc/mail/aliases
3.重啟 sendmail,讀取 aliases.db,具體的命令如清單 3 所示。
service sendmail restart
sendmail的配置文件需要配置正確,由于sendmail的配置十分復(fù)雜。通常它的配置文件是sendmail.cf,位于/etc/mail目錄下。由于sendmail.cf的語法深奧難懂,很少有人會直接去修改該文件來對Sendmail服務(wù)器進(jìn)行配置。一般通過m4宏處理程序來生成所需的sendmail.cf文件。創(chuàng)建的過程中還需要一個模板文件,系統(tǒng)默認(rèn)在/etc/mail目錄下有一個sendmail.mc模板文件。
可以根據(jù)簡單、直觀的sendmail.mc模板來生成sendmail.cf文件,而無需直接編輯sendmail.cf文件??梢灾苯油ㄟ^修改sendmail.mc模板來達(dá)到定制sendmail.cf文件的目的。這里介紹創(chuàng)建sendmail.cf文件的步驟:
(1)備份原有sendmail.cf文件
在終端命令窗口運(yùn)行以下命令:
cp /etc/mial/sendmail.cf /etc/mail/sendmail.cf.BAK
(2)生成sendmail.cf文件
根據(jù)sendmail.mc模板文件產(chǎn)生sendmail.cf配置文件,并導(dǎo)出到/etc/mail/目錄下:
m4 /etc/mail/sendmail.mc /etc/mail/sendmail.cf
(3)重啟sendmail服務(wù)
[root@ahpeng root] /etc/rc.d/init.d/sendmail restart
很明顯在用m4宏編譯工具創(chuàng)建sendmail.cf文件比較方便,而且不容易出錯,更可以避免某些帶有安全漏洞或者過時的宏所造成的破壞。一個sendmail.mc模板的大致內(nèi)容如下:
divert(-1)dnl
......
include('/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID('setup for Red Hat Linux')dnl
OSTYPE('linux')dnl
......
dnl #
dnl define('SMART_HOST','smtp.your.provider')
dnl #
define('confDEF_USER_ID',''8:12'')dnl
define('confTRUSTED_USER', 'smmsp')dnl
dnl define(′confAUTO_REBUILD′)dnl
......
這里介紹sendmail.mc模板的語法組成:
dnl:用來注釋各項(xiàng),同時dnl命令還用來標(biāo)識一個命令的結(jié)束。
divert(-1):位于mc模板文件的頂部,目的是讓m4程序輸出時更加精簡一些。
OSTYPE ('OperationSystemType'):定義使用的操作系統(tǒng)類型,顯然這里應(yīng)該用linux代替OperationSystemType,注意要用一個反引號和一個正引號把對應(yīng)的操作系統(tǒng)類型括起來。
define:定義一些全局設(shè)置,對于Linux系統(tǒng),設(shè)置了OSTYPE之后,可以定義下面的一些全局參數(shù),如果不定義,就使用默認(rèn)值。這里舉兩個簡單例子:define('ALIAS_FILE','/etc/aliases')
定義別名文件(alia file)的保存路徑,默認(rèn)是/etc/aliases
define('STATUS_FILE', '/etc/mail/statistics')
sendmail的狀態(tài)信息文件。
以上只是sendmai.mc的一些簡單的語法解釋,更多的參數(shù)含義及其配置信息可以參見。
3. ?為新用戶開電子郵件賬號
在Linux里為新用戶開設(shè)電子郵件賬戶比較簡單,只需在Linux系統(tǒng)里新增一個用戶即可。單擊"主菜單→系統(tǒng)設(shè)置→用戶和組群"菜單項(xiàng),打開"Red Hat用戶管理器"對話框,單擊"添加用戶"按鈕,在出現(xiàn)的"創(chuàng)建新用戶"對話框里指定用戶名、登錄口令即可,如圖3所示。
假設(shè)我們添加了一個用戶Peter(密碼為peter),這樣該用戶就有了一個郵件地址Peter@YourDomain.com(此處的YourDomain.com用你自己域名代替)。
以上過程也可以在終端命令窗口運(yùn)行以下命令來實(shí)現(xiàn):
[root@ahpeng root]#adduser peter -p peter
其實(shí),它是利用磁盤配額功能來實(shí)現(xiàn)的。電子郵件的暫存空間是在/var/spool/mail目錄下,只要通過磁盤配額設(shè)定每一個用戶在這個目錄下能使用的最大空間即可。
[root@ahpeng root]#/etc/rc.d/init.d/xinetd reload
設(shè)置好以后,就可以在Outlook Express里面設(shè)置好郵件賬號,以后就可以直接利用Sendmail服務(wù)器進(jìn)行收發(fā)郵件了,由于郵件服務(wù)器就在本地局域網(wǎng),所以速度很快。
M4 是一個宏處理器.將輸入拷貝到輸出,同時將宏展開. 宏可以是內(nèi)嵌的也可以是用戶定義的. 除了可以展開宏,m4還有一些內(nèi)建的函數(shù),用來引用文件,執(zhí)行Unix
如果是sendmail
1、修改sendmail的配置文件 /etc/mail/submit.mc,追加下面兩行
MASQUERADE_AS(`abc.com’)dnl
FEATURE(`masquerade_envelope’)dnl
2、生成submit.cf文件
命令:m4 submit.mc submit.cf
使用m4命令前要確保安裝了sendmail-cf
3、重啟sendmail
/etc/init.d/sendmail restart
4、cat a.txt|mail -s 'abc' test@163.com
其中m4是一個宏處理器,將輸入拷貝到輸出,同時將宏展開。宏可以是內(nèi)嵌的,也可以是用戶定義的,它還有一些內(nèi)建函數(shù),可以引用文件、執(zhí)行命令和計(jì)算等。m4既可以作為編譯器的前端,也可以單獨(dú)作為一個宏處理器你可以多看看《linux 就該這么學(xué)》希望對你有幫助
M4 是一個宏處理器.將輸入拷貝到輸出,同時將宏展開. 宏可以是內(nèi)嵌的也可以是用戶定義的. 除了可以展開宏,m4還有一些內(nèi)建的函數(shù),用來引用文件,執(zhí)行Unix,你是感興趣的話可以看下劉遄老師寫的《Linux就該這么學(xué)》作為入門的書籍,覺得不錯的話采納下哦~
分享題目:linuxm4命令 linux comm命令詳解
網(wǎng)站網(wǎng)址:http://vcdvsql.cn/article38/dooojsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、自適應(yīng)網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站收錄、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)