白山有实装饰材料公司

排名推廣
排名推廣
發(fā)布信息
發(fā)布信息
會員中心
會員中心
 
 
當前位置: 首頁 » 資訊 » 網(wǎng)絡(luò)知識 » 正文

用Linux作郵件服務(wù)器

放大字體  縮小字體 發(fā)布日期:2009-11-26  瀏覽次數(shù):99


        

如果somedomain.gov的SMTP客戶程序連接到。otherdomain.com郵件發(fā)送器來投遞zeng的副本,當它準備列出收件人(信封地址)時,它該怎么處理呢?如果像上面To:行(郵件頭地址)那樣列出兩個收件人,li將收到信件的兩個副本,因為otherdomain.com的郵件發(fā)送器將向somedomain.gov轉(zhuǎn)發(fā)一個副本。解決這一問題的方法是:somedomain.gov的SMTP客戶程序把信件放在一個信封里,在此信封只包含一個主機上的收件人姓名,雖然所有收件人的名單仍然在信件的頭部,但他們在信封之內(nèi),因此位于somedomain.gov和otherdomain.com處的SMTP服務(wù)程序也就看不到他們。在本例中,寄往otherdomain.com的信封將只列出zeng,寄往somedomain.gov的信封將只列出li。 

別名是說明郵件頭和信封地址不同的另一個例子。假定要把郵件發(fā)送到別名為friends的人,friends包括的人名是Xie、zhang、li和qiu。在信中,用戶寫的是To:friends,然而。sendmail將擴展這一別名并構(gòu)造一個包含所有收件人的信封。根據(jù)這些名字是否是別名,是否有可能在其他主機上,最初的消息將被裝進四個不同的信封并投遞到四個不同的主機。在每個信封上將只包含一個收件人的姓名,但在信頭中包含的卻是同一個別名friends。 

sendmail允許在命令行中指定收件人,假定有個名為letter的文件,其內(nèi)容如下: 

To:null recipient〈 〉 

Subject:To show the differebce between in header and envelope addresses 

This is just a test for E-mail. 

利用下面的命令發(fā)送這一信件: 

$sendmail yourlogin〈letter 

即使用戶的注冊名沒有在信件的頭部,用戶(yourlogin)也將會收到這一信件。因為用戶的地址在信封上。除非以別的方式(例如利用-t標志)說明,否則sendmail將根據(jù)命令行上指定的收件人構(gòu)造信封地址,而且郵件頭地址和信封地址并不一定要相同。

2.2  sendmail的安裝與配置

首先,必須獲取sendmail源代碼并進行編譯。接著,必須選擇同用戶的站點需求相接近的sendmail.cf文件并對它進行必要的修改。然后,測試sendmail和它的配置文件。最后,必須安裝sendmail、sendmail.cf以及其他輔助文件。 

上面所述的是基本步驟。但根據(jù)sendmail安裝位置的不同,可能還需要修改系統(tǒng)登錄腳本(/etc/init.d中的一個文件),從而使sendmail在系統(tǒng)引導(dǎo)下能夠被正確地啟動。此外,如果系統(tǒng)沒有別名文件,還必須創(chuàng)建一個,別名文件通常被命名為/usr/lib/aliases或/etc/mail/aliases(別名文件的位置將在sendmail.cf中用到,因此可以把它放在用戶想放的任何地方)。需要注意的是,可能還需要對系統(tǒng)的DNS數(shù)據(jù)庫進行修改。

1.獲取源代碼

RedHat 6.1配備的是sendmail-8.9.3,從www.redhat.com站點上可以得到sendmail-8.9.3的RPM版本。sendmail的這一版本可以從http://www.sendmail.org站點得到,或者通過FTP從ftp://ftp.sendmail.org得到。 

注意:下載文件的確切名字依據(jù)V8 sendmail當前版本的不同而不同,當前的最新是版本8.9.3。另外,由于文件是被打包壓縮的,因此在傳輸它們之前必須為FTP提供binary命令,即以二進制方式傳輸。還注意,應(yīng)該使用自己完整的E-mail地址作為口令,例如username@somedomain.gov。

2.解壓源、解包并編譯sendmail

在獲得了源代碼后,必須把它打開。由于它是一個被壓縮的tar映像文件,因此必須對它進行解壓,然后從tar檔案中抽取各個文件。假定文件存放在目錄/usr/local/src下面。  

以下為引用的內(nèi)容:
     [root@lll src]# gzip -d sendmail-8.9.3.tar.gz 
        [root@lll src]# tar -xvf sendmail-8.9.3.tar 
    執(zhí)行上述操作后,將產(chǎn)生子目錄sendmail-8.9.3。接下來,運行cd和Is,查看這一源代碼  目錄中有哪些文件: 
        [root@lll src]# cd sendmail-8.9.3/stc。 
        [root@lll src]# ls 
    Makefile     collect.c      macro.c      parseaddr.c     srvrsmtp.c 
    Makefiles    conf.c         mailp.0      pathnames.h     stab.c 
    READ_ME      conf.h         mailp.1      queue.c         stats.c 
    TRACEFLAGS   convtime.c     mailstats.h  redcf.c         sysexits.c 
    alias.c      daemon.c       main.c       recipient.c     sysexits.h 
    aliases      deliver.c      makesendmail safefile.c      trace.c 
    aliases.0    domain.c       map.c        savemail.c      udb.c 
    aliases.5    envelope.c     mci.c        sendmail.0      useful.h 
    arpadate.c   err.c          mime.c       sendmail.8      usersmtp.c 
    cdefs.h      headers.c      newaliases.0 sendmail.h      util.c 
    clock.c      ldap_map.h     newaliases.1 sendmail.hf     version.c 
現(xiàn)在可以準備編譯sendmail了,但首先要閱讀下面的文件,這些文件包含關(guān)于用戶所下載的sendmail版本的最新消息。 
        FAQ 
        RELEASE-NOTES 
        KNOWNBUGS 
        READ_ME 
    另外,還要注意doc/op子目錄中的sendmail安裝與操作指南(SIOG)。 
    sendmail的安裝過程非常簡單。要編譯新的sendmail版本,運行下面的命令即可。 
        [root@lll src]# makesendmail 
    在RedHat 6.x的2.2內(nèi)核上,sendmail在編譯時不會出現(xiàn)任何警告或錯誤。如果使用光盤上的RPM軟件包文件,安裝更簡單。僅需執(zhí)行下面的命令: 
        [root@lll src]# rpm-ivh sendmail-8_9_3.rpm 
    在安裝新的sendmail時,一定要為被替換的所有文件創(chuàng)建一個備份,特別是原來的sendmail守護程序。如果新的sendmail不能正常工作,在排除新版本的故障時,將需要恢復(fù)原來的版本。 
    要安裝新版本的sendmail,首先利用下面的命令停止當前運行的守護進程: 
        [root@lll src]#/etc/rc.d/init.d/sendmail.init stop 
    然后把新的二進制文件拷貝到sendmail的正確位置: 
        [root@lll src]# cp obj.Linux*/sendmail/usr/sbin/sendmail 
    另外,還必須把新的手冊頁文件拷貝到正確位置: 
        [root@lll src]# cp aliases.1/usr/man/man5/aliases.5 
        [root@lll src]# cp mailq.0/usr/man/man1/mailq.1 
        [root@lll src]# cp newaliases.0/usr/man/man1/newaliases.1 
        [root@lll src]# cp sendmail.0/usr/man/man8/sendmail.8 
    現(xiàn)在可以利用下面的命令重新啟動新的sendmail守護進程: 
        [root@lll src]# /etc/rc.d/init.d/sendmail/init start

3.sendmail的別名文件 

 sendmail依靠許多輔助文件來執(zhí)行它的工作。最重要的文件是別名文件和配置文件Sendmail.cf。如果打算把sendmail作為SMTP服務(wù)程序運行(大多數(shù)站點都這么做),則應(yīng)該安裝SMTP的幫助文件sendmail.hf。這就是關(guān)于文件sendmail.st和sendmail.hf所需說明的內(nèi)容。其他輔助文件包含在sendmail的安裝和操作指南(Sendmail Internet and Operating Guide,簡稱SIOG)中。 

sendmail會檢查收件人的地址是否為別名。例如,大部分Internet站點都設(shè)有一管理員地址Webmaster,遇到問題可以向他報告。然而大多數(shù)站點并沒有這一名字的實際賬號,而是把Webmaster的郵件轉(zhuǎn)移到負責郵件管理的一個或幾個人。例如,在假設(shè)的站點somedomain.gov上,用戶zhang和li共同負責網(wǎng)站管理,因此別名文件會具有下面一項內(nèi)容: 

Webmaster:zhang,li 

這行代碼告訴sendmail,寄向Webmaster的郵件將被改寄到用戶名為zhang和li處。事實上,這些名字還可以是別名,例如:  
Webmaster:firstgroup,secondgroup,thirdgroup 
firstgroup:zhang,li 
secondgroup:liu,deng 
thirdgroup:qiu,wang 

在所有這些例子中,別名的名字在冒號的左邊,這些名字所代替的真實名字在冒號的右邊。sendmail將反復(fù)地分析別名直到他們被解析為一個真正的用戶或一個遠程地址為止。在前面的例子中,要解析別名Webrmaster,sendmail首先把它擴展為收件人名單firstgroup、secondgroup和thirdgroup。然后進一步擴展這些別名中的每一個,從而得到最終的名單——zhang、li、liu、deng、qiu和wang。 

需要指出的是,別名的右邊可以指定為一個遠程主機,但左邊卻不能。別名zhang:zhang@otherdomain.com是合法的,而zhang@otherdomain.gov@otherdomain.com是不合法的。 

 
 
[ 資訊搜索 ]  [ 加入收藏 ]  [ 告訴好友 ]  [ 打印本文 ]  [ 關(guān)閉窗口 ]

 
0條 [查看全部]  相關(guān)評論

 
推薦圖文
推薦資訊
點擊排行
 
網(wǎng)站首頁 | 招賢納士 | 關(guān)于我們 | 聯(lián)系方式 | 使用協(xié)議 | 版權(quán)隱私 | 網(wǎng)站地圖 | 排名推廣 | 廣告服務(wù) | 網(wǎng)站留言 | RSS訂閱 | 粵ICP備10022894號-3