歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> Sendmail快速入門指南

Sendmail快速入門指南

日期:2017/2/27 14:15:50   编辑:更多Linux
  Sendmail一般已經預先設置好了,但如果你需要某些特殊功能(比如說UUCP),設置起 來可就要麻煩多了.其原因是,當初寫sendmail的時候,它的設置語言被設計成能夠迅速處 理, 而代價就是晦澀難懂.1987年我曾看過一個sendmail.cf文件,以後的十年裡就再也沒 有碰過. 相比較而言,smail更容易弄懂,並且成批處理郵件的性能不錯,能把成批郵件用gzip 壓縮後,通過UUCP發送出去.幾年下來給我省下不少電話費. 然而,一年半以前我發現了一個叫BSMTP的軟件包(Batched Simple Mail Transport Prootocol), 用於收發壓縮的成批處理的郵件,基於UUCP.Sendmail通過TCP/IP收發郵件 時使用的是SMTP 協議,不過你你也可以直接將郵件SMTP送給sendmail. BSMTP軟件包所做的就是收集要發出的 郵件,把它們合並成一些批(batch)文件,裡面 再為每封郵件夾帶上合適的SMTP命令,把這些批文 件gzip壓縮並通過UUCP傳輸.在另一端, 整個過程倒過來, UUCP收到文件後把它交給解壓縮程序, 解壓縮程序再送給Sendmail.這 樣做一般能達到一半以上的壓縮率. 利用Linux上UUCP的高級特性,你能實現很大的傳輸量.BSMTP既可以用在sendmail上, 也能用在smail上,並且還帶了一個宏包,大大簡化了sendmail的設置.我大約花了一個周 末的時間讓sendmail能和BSMTP/UUCP 一塊兒工作了. 一但總結出了基本的方法,事情就變得容易多了.現在我只需一個小時就能在我的租 用線路上完成設置. 既然你有Linux,你就已經擁有所需要的工具了.如果沒有,從你的發行套件裡把它們 裝上, 現在假 設我們的系統連在租用線路上,並且有一台DNS已經為我們的機器設了MX項. 安裝好最新的sendmail 及sendmail-cf RPM包. 來看看下面幾行,把它們寫進/usr/lib/sendmail-cf/cf目錄下的一個文件,並起名 叫linux.mc: divert(-1) OSTYPE(linux) FEATURE(use_cw_file) define(`confCW_FILE, `-o /etc/sendmail/sendmail.cw) FEATURE(mailertable,`hash -o /etc/sendmail/mailertable.db) FEATURE(local_procmail) define(`STATUS_FILE,`/etc/sendmail/sendmail.st) MAILER(procmail) MAILER(smtp) 夠深奧的,是不是? 鍵入以下命令,用m4處理這個文件: m4 ../m4/cf.m4 linux.mc > sendmail.cf 結果產生了一個約1200行的sendmail.cf文件(對我來說還是跟天書一樣). 現在,咱們來看看它們到底說的是什麼. # divert(-1) 這一行是給宏處理程序的指令,我從來不去費心琢磨它的意思.它要做的無非是除 去換行符. OSTYPE(linux) 這個看起來很容易,對吧?不過它還有層意思沒有明說,就是sendmail需要調用的本 地發送程序mail.local應位於/bin,否則你的信件將消失得無影無蹤. (這個 OSTYPE()宏所需的參數是../ostype目錄下的一個文件名,定義 了專一於某個OS的 環境,如某些文件的路徑.在Sendmail的README文件中您可以得知定義了 哪些環境變量及 其缺省值--譯者注) FEATURE(use_cw_file) (FEATURE()宏指定你想要或不想要哪些特性.詳見README--譯者注) define(`confCW_FILE, `-o /etc/sendmail/sendmail.cw) 這個CW文件到底為何物? 比方說,我能收到許多發到[email protected]這個地址的e-mail,可是,主機名卻是 linux.liss.na. 這好說,我們在DNS裡有一個MX項,能讓linux.lisse.na處理lisse.na 的郵件,對嗎?錯了. 你還必須告訴linux.lisse.na上的sendmail,本地機器可以接受發 送到哪些主機名的信. 比如: lisse lisse.na linux linux.lisse.na 如果忘了做這件事,sendmail會發出一封有點讓人費解的出錯信息.這封信會有如下標題 : Subject: Returned mail: Local configuration error 讓人糊塗的是關於MX列表的部分: ----- Transcript of session follows ----- 554 MX list for nws.com.na. points back to linux.lisse.na 554 [email protected]... Local configuration error FEATURE(mailertable,`hash -o /etc/sendmail/mailertable.db) 你只有在設置一些特殊的發送方式時才需要這一行.比如,要想用BSTMP軟件包為三 A公司發送郵件,中間經過UUCP鄰居bbbbb,你需要在DNS中為aaa.com.na設一 個MX項,並 且在mailertable文件裡寫入以下內容:


..aaa.com.na bsmtp:bbbbb aaa.com.na bsmtp:bbbbb 每行的兩個域之間要用TAB分隔,並且你必須為mailertable運行sendmail軟件包裡 的 maemap程序,來產生二進制的數據庫文件mailertable.db.比如: makemap hash < mailertable mailertable 還有其它的數據庫系統,(比如說,dbm),不過咱們別再把問題弄復雜了. FEATURE(local_procmail) 這一行改變了缺省定義,起把本地發送程序重新定義為procmail.多數情況下你正希望這 樣. define(`STATUS_FILE,`/etc/sendmail/sendmail.st) 這一行定義狀態文件.確認你已經以root身份建立了這個目錄. MAILER(procmail) procmail是 Stefan van der Berg在我的母校寫的.值得為它另寫一篇文章.簡 而言之, 它是本地發送程序.它的威力在於信件過濾功能,很適合mailing list. MAILER(smtp) 請注意,我省略了bsmtp項,如果你在mailertable裡有BSMTP項,你需 要在這裡加上 MAILESendmail快速入門指南 Sendmail一般已經預先設置好了,但如果你需要某些特殊功能(比如說UUCP),設置起 來可就要麻煩多了.其原因是,當初寫sendmail的時候,它的設置語言被設計成能夠迅速處 理, 而代價就是晦澀難懂.1987年我曾看過一個sendmail.cf文件,以後的十年裡就再也沒 有碰過. 相比較而言,smail更容易弄懂,並且成批處理郵件的性能不錯,能把成批郵件用gzip 壓縮後,通過UUCP發送出去.幾年下來給我省下不少電話費. 然而,一年半以前我發現了一個叫BSMTP的軟件包(Batched Simple Mail Transport Prootocol), 用於收發壓縮的成批處理的郵件,基於UUCP.Sendmail通過TCP/IP收發郵件 時使用的是SMTP 協議,不過你你也可以直接將郵件SMTP送給sendmail. BSMTP軟件包所做的就是收集要發出的 郵件,把它們合並成一些批(batch)文件,裡面 再為每封郵件夾帶上合適的SMTP命令,把這些批文 件gzip壓縮並通過UUCP傳輸.在另一端, 整個過程倒過來, UUCP收到文件後把它交給解壓縮程序, 解壓縮程序再送給Sendmail.這 樣做一般能達到一半以上的壓縮率. 利用Linux上UUCP的高級特性,你能實現很大的傳輸量.BSMTP既可以用在sendmail上, 也能用在smail上,並且還帶了一個宏包,大大簡化了sendmail的設置.我大約花了一個周 末的時間讓sendmail能和BSMTP/UUCP 一塊兒工作了. 一但總結出了基本的方法,事情就變得容易多了.現在我只需一個小時就能在我的租 用線路上完成設置. 既然你有Linux,你就已經擁有所需要的工具了.如果沒有,從你的發行套件裡把它們 裝上, 現在假 設我們的系統連在租用線路上,並且有一台DNS已經為我們的機器設了MX項. 安裝好最新的sendmail 及sendmail-cf RPM包. 來看看下面幾行,把它們寫進/usr/lib/sendmail-cf/cf目錄下的一個文件,並起名 叫linux.mc: divert(-1) OSTYPE(linux) FEATURE(use_cw_file) define(`confCW_FILE, `-o /etc/sendmail/sendmail.cw) FEATURE(mailertable,`hash -o /etc/sendmail/mailertable.db) FEATURE(local_procmail) define(`STATUS_FILE,`/etc/sendmail/sendmail.st) MAILER(procmail) MAILER(smtp) 夠深奧的,是不是? 鍵入以下命令,用m4處理這個文件: m4 ../m4/cf.m4 linux.mc > sendmail.cf 結果產生了一個約1200行的sendmail.cf文件(對我來說還是跟天書一樣). 現在,咱們來看看它們到底說的是什麼. # divert(-1) 這一行是給宏處理程序的指令,我從來不去費心琢磨它的意思.它要做的無非是除 去換行符. OSTYPE(linux) 這個看起來很容易,對吧?不過它還有層意思沒有明說,就是sendmail需要調用的本 地發送程序mail.local應位於/bin,否則你的信件將消失得無影無蹤. (這個 OSTYPE()宏所需的參數是../ostype目錄下的一個文件名,定義 了專一於某個OS的 環境,如某些文件的路徑.在Sendmail的README文件中您可以得知定義了 哪些環境變量及 其缺省值--譯者注) FEATURE(use_cw_file) (FEATURE()宏指定你想要或不想要哪些特性.詳見README--譯者注) define(`confCW_FILE, `-o /etc/sendmail/sendmail.cw) 這個CW文件到底為何物? 比方說,我能收到許多發到[email protected]這個地址的e-mail,可是,主機名卻是 linux.liss.na. 這好說,我們在DNS裡有一個MX項,能讓linux.lisse.na處理lisse.na 的郵件,對嗎?錯了. 你還必須告訴linux.lisse.na上的sendmail,本地機器可以接受發 送到哪些主機名的信. 比如: lisse lisse.na linux linux.lisse.na 如果忘了做這件事,sendmail會發出一封有點讓人費解的出錯信息.這封信會有如下標題 : Subject: Returned mail: Local configuration error 讓人糊塗的是關於MX列表的部分:

----- Transcript of session follows ----- 554 MX list for nws.com.na. points back to linux.lisse.na 554 [email protected]... Local configuration error FEATURE(mailertable,`hash -o /etc/sendmail/mailertable.db) 你只有在設置一些特殊的發送方式時才需要這一行.比如,要想用BSTMP軟件包為三 A公司發送郵件,中間經過UUCP鄰居bbbbb,你需要在DNS中為aaa.com.na設一 個MX項,並 且在mailertable文件裡寫入以下內容: ..aaa.com.na bsmtp:bbbbb aaa.com.na bsmtp:bbbbb 每行的兩個域之間要用TAB分隔,並且你必須為mailertable運行sendmail軟件包裡 的



FEATURE(mailertable,`hash -o /etc/sendmail/mailertable.db) 你只有在設置一些特殊的發送方式時才需要這一行.比如,要想用BSTMP軟件包為三 A公司發送郵件,中間經過UUCP鄰居bbbbb,你需要在DNS中為aaa.com.na設一 個MX項,並 且在mailertable文件裡寫入以下內容: ..aaa.com.na bsmtp:bbbbb aaa.com.na bsmtp:bbbbb 每行的兩個域之間要用TAB分隔,並且你必須為mailertable運行sendmail軟件包裡 的



Copyright © Linux教程網 All Rights Reserved