Postfix虛擬網(wǎng)絡(luò)域名
近年來(lái),用同一臺(tái)主機(jī)來(lái)搭建多個(gè)網(wǎng)域,已經(jīng)蔚然成風(fēng)。舉個(gè)實(shí)例來(lái)說(shuō),oreillynet.com和onlamp.com其實(shí)位于同一臺(tái)主機(jī),但是從外界的觀點(diǎn)來(lái)看,它們似乎分別位于兩臺(tái)完全不同的主機(jī)上。一個(gè)系統(tǒng)通常有一個(gè)最具代表性的網(wǎng)絡(luò)域名,稱(chēng)為正式網(wǎng)域,除此之外的其他網(wǎng)域,則被視為虛擬網(wǎng)域。每個(gè)虛擬網(wǎng)域都可以提供自己的網(wǎng)絡(luò)與郵件服務(wù),且外界看不出正式網(wǎng)域與虛擬網(wǎng)域的差別。
postfix如何投遞虛擬網(wǎng)域的郵件,決定了你需要哪些技術(shù)。有兩個(gè)重要因素影響你的postfix如何支持多個(gè)虛擬網(wǎng)域:
網(wǎng)域之間要有單獨(dú)的命名空間嗎?比方說(shuō),寫(xiě)給info@oreilly.com和info@ora.com這兩個(gè)地址的郵件,是放在同一個(gè)郵箱還是各自單獨(dú)的郵箱?對(duì)于使用相同郵箱的情況,我們稱(chēng)之為共享網(wǎng)域;而另一種情況則稱(chēng)為獨(dú)立網(wǎng)域。
每位用戶(hù)都需要系統(tǒng)賬戶(hù)嗎?我們將區(qū)別“系統(tǒng)賬戶(hù)”與“虛擬賬戶(hù)”的不同。前者是真正的unix賬戶(hù),可用來(lái)登錄服務(wù)器系統(tǒng);后者純粹用于辨識(shí)郵箱,不能登錄系統(tǒng),在/etc/passwd里也沒(méi)有對(duì)應(yīng)記錄。
我們將探討postfix對(duì)于虛擬網(wǎng)域郵件的四種處理方式:
共享網(wǎng)域搭配系統(tǒng)賬戶(hù)
獨(dú)立網(wǎng)域搭配系統(tǒng)賬戶(hù)
獨(dú)立網(wǎng)域搭配虛擬賬戶(hù)
虛擬網(wǎng)域搭配非postfix控制管理的特殊格式郵箱
應(yīng)該挑選哪一種技術(shù),主要決定因素是你所使用的POP/IMAP server。如果你的POP/IMAP server不能辨別虛擬網(wǎng)域,那么,很可能所有郵件地址需要系統(tǒng)賬戶(hù)。某些POP/IMAP servers天生就是為了支持多重網(wǎng)域而設(shè)計(jì),而且郵件是存放在本地文件系統(tǒng)的某個(gè)特定目錄結(jié)構(gòu)下,還有些POP/IMAP server使用自己專(zhuān)屬的郵箱格式。對(duì)于posfix不支持的郵箱格式,postfix可使用LMTP將郵件交給POP/IMAP server。
不管采用哪一種技術(shù),你的正式網(wǎng)域的DNS是怎么設(shè)定的,所有虛擬網(wǎng)域的DNS都必須“依樣畫(huà)葫蘆”。
共享網(wǎng)域搭配系統(tǒng)賬戶(hù)
最簡(jiǎn)單的虛擬網(wǎng)域模式,是每位用戶(hù)都可以收到每個(gè)網(wǎng)域的郵件。就用戶(hù)的感受而言,就好像同一個(gè)郵箱有多個(gè)地址一樣。這種模式的設(shè)定方法最簡(jiǎn)單,只要將所有虛擬網(wǎng)域名稱(chēng)都列在mydestination參數(shù),并像平常一樣為每一位用戶(hù)都創(chuàng)建自己的系統(tǒng)賬戶(hù),他們就可以收到寫(xiě)給任何網(wǎng)域的郵件。
這種模式使用LOCAL MDA來(lái)執(zhí)行投遞操作,因此,正式網(wǎng)域該有的功能,虛擬網(wǎng)域同樣一應(yīng)俱全,所有網(wǎng)域共享同一個(gè)別名文件,每位用戶(hù)都可以創(chuàng)建自己的.forward文件。舉例來(lái)說(shuō),假設(shè)我們希望oreillynet.com網(wǎng)域的郵件服務(wù)器兼任ora.com與oreilly.com這兩個(gè)網(wǎng)域的郵件交換站。第一步是設(shè)定那兩個(gè)虛擬網(wǎng)域的DNS,將它們的mx都指向此服務(wù)器;第二步是修改此服務(wù)器的mydestination參數(shù),完成修改之后,記得要讓postfix重新讀取其配置文件,讓你所做的改變生效;用戶(hù)現(xiàn)在可以收到寄給mydestination所列的任一網(wǎng)域的郵件。外界寫(xiě)給info@ora.com或 info@oreilly.com的郵件,都會(huì)被投遞到同一個(gè)系統(tǒng)賬戶(hù)的郵箱。
獨(dú)立網(wǎng)域搭配系統(tǒng)賬戶(hù)
如果每個(gè)虛擬網(wǎng)域都要有自己的命名空間,設(shè)定方法就稍微復(fù)雜些。在獨(dú)立網(wǎng)域模式下,寫(xiě)給info@ora.com的郵件不應(yīng)該被放在 info@oreilly.com的郵箱中。在這種情況下,虛擬網(wǎng)域不應(yīng)該被列在mydestination參數(shù)中,而應(yīng)該被列在 virtual_alias_domains參數(shù)中;你必須為每一個(gè)郵件地址分別創(chuàng)建對(duì)應(yīng)的系統(tǒng)賬戶(hù)。每一個(gè)系統(tǒng)賬戶(hù)的名稱(chēng)都必須獨(dú)一無(wú)二,但是不要求一定要與郵件地址的人名部分相同,因?yàn)槲覀兛梢粤硗鉁?zhǔn)備一個(gè)查詢(xún)表來(lái)定義兩者之間的對(duì)應(yīng)關(guān)系。若要區(qū)別賬戶(hù)所屬網(wǎng)域,同時(shí)又要避免賬戶(hù)名稱(chēng)重復(fù),最簡(jiǎn)單的方法是將網(wǎng)域名稱(chēng)當(dāng)成賬戶(hù)名稱(chēng)的一部分。一種可行的命名法則,是使用類(lèi)似info.ora.com和info.oreilly.com這樣的名稱(chēng)來(lái)創(chuàng)建系統(tǒng)賬戶(hù)。不過(guò),某些系統(tǒng)平臺(tái)的賬戶(hù)名稱(chēng)被限制在8個(gè)字符以下,如果你的平臺(tái)不支持長(zhǎng)名稱(chēng),就不能使用這種命名法則。
在postfix知道它應(yīng)該收下哪些網(wǎng)域的郵件,而你也為每一個(gè)地址都準(zhǔn)備好對(duì)應(yīng)的系統(tǒng)賬戶(hù)之后,下一步就是將virtual_ailas_maps指向虛擬別名表:
virtual_alias_maps = hash:/etc/postfix/virtual_alias
此查詢(xún)表定義了每一個(gè)虛擬網(wǎng)域郵件地址所對(duì)應(yīng)的實(shí)際郵件地址。
每當(dāng)你修改虛擬別名表后,別忘了使用postmap將該文件轉(zhuǎn)換成postfix可直接查詢(xún)的格式:
postmap virtual_alias
如果helene和frank能夠登錄服務(wù)器系統(tǒng),直接從服務(wù)器寄信出去,你可能還需要另外準(zhǔn)備一個(gè)規(guī)范映射表,好讓他們寄出去的郵件的寄件人地址被改寫(xiě)成正確的地址。例如:
canoniacl_maps = hash:/etc/postfix/canonical
再次提醒,規(guī)范映射表也必須經(jīng)過(guò)postmap的轉(zhuǎn)換
獨(dú)立網(wǎng)域搭配虛擬賬戶(hù)
前兩種模式最大的缺點(diǎn),就是每一個(gè)郵件地址都必須在服務(wù)器上有對(duì)應(yīng)的系統(tǒng)賬戶(hù)。雖然事前的設(shè)定過(guò)程不難,但是事后維護(hù)工作卻很麻煩。尤其當(dāng)虛擬網(wǎng)域的數(shù)量增加時(shí),系統(tǒng)賬戶(hù)的維護(hù)工作更是苦不堪言。此外,從系統(tǒng)安全的角度來(lái)看,如果絕大部分用戶(hù)都只是利用服務(wù)器來(lái)收信而已,實(shí)在沒(méi)有必要賦予他們能夠登錄系統(tǒng)的能力。比較務(wù)實(shí)的做法,應(yīng)該是要求postfix將郵件投遞到本地系統(tǒng)上的一個(gè)虛擬郵箱目錄,在此目錄下,每一個(gè)虛擬郵件都有自己的郵箱文件,而用戶(hù)可通過(guò)支持虛擬郵箱的POP/IMAP server來(lái)取信。虛擬郵箱與一般郵箱的差別之處,在于郵件文件與系統(tǒng)賬戶(hù)之間不要求存在一比一的對(duì)應(yīng)關(guān)系。
使用虛擬郵箱模式時(shí),你必須在virtual_mailbox_domains參數(shù)列出每一個(gè)虛擬網(wǎng)域的名稱(chēng):
virtual_mailbox_domains = ora.com, oreilly.com
如果你有許多虛擬網(wǎng)域,不妨將它們列在一個(gè)文件,然后將virtual_mailbox_domains指向該文件:
virtual_mailbox_domains = /etc/postfix/virtual_domains
/etc/postfix/virtual_domains文件的每一行,各包含一個(gè)虛擬網(wǎng)域的名稱(chēng)。
每當(dāng)postfix收到寫(xiě)給virtual_mailbox_domains所列的虛擬網(wǎng)域的郵件時(shí),就交由virtual MDA執(zhí)行投遞操作。virtual的實(shí)質(zhì)是local MDA的“小型版本”,它以一種安全而且高效率的程序來(lái)進(jìn)行投遞,其代價(jià)是犧牲了本地別名文件、forward文件、MLM餓支持。不過(guò),這不是什么大缺點(diǎn),因?yàn)槲覀內(nèi)钥墒褂胿irtual_alias_maps參數(shù)來(lái)達(dá)到同樣的效果。
設(shè)定虛擬郵箱時(shí),你應(yīng)該妥善安排郵件目錄的結(jié)構(gòu),使其符合POP/IMAP server的預(yù)期要求。支持虛擬郵箱的POP/IMAP server,多半假設(shè)所有虛擬郵箱都位于某一個(gè)基礎(chǔ)目錄下,在此目錄下,每一個(gè)虛擬網(wǎng)域都有一個(gè)與其網(wǎng)域名稱(chēng)同名的子目錄。因此,如果有兩個(gè)虛擬網(wǎng)域,則它們的虛擬郵箱應(yīng)該分別被放在兩個(gè)子目錄下;
定義虛擬郵箱基礎(chǔ)目錄的參數(shù)是virtual_mailbox_base,你必須給出完整的目錄路徑;
virtual_mailbox_base = /var/vmail
virtual_mailbox_maps參數(shù)定義虛擬郵箱查詢(xún)表的位置;此查詢(xún)表描述每一位虛擬郵箱用戶(hù)的郵件地址以及對(duì)應(yīng)的郵箱文件的相對(duì)路徑文件名。郵箱文件的格式可以是mbox或maildir。如果你選擇maildir格式,郵箱文件名末端必須加一個(gè)“/"符合。
info@ora.com ora.com/info
info@oreilly.com oreilly.com/info
完成上述設(shè)定后,外界寫(xiě)到info@ora.com和info@oreilly.com的郵件,就不會(huì)存放在同一個(gè)郵箱了。
#p#
郵箱文件的擁有權(quán)
Unix系統(tǒng)上的每一個(gè)文件都有主人,虛擬郵箱文件也不例外--雖然虛擬郵箱的“用戶(hù)”沒(méi)有系統(tǒng)賬戶(hù)。因此,用戶(hù)如何訪問(wèn)郵箱文件,決定呢郵箱文件擁有權(quán)的歸屬。通常,POP/IMAP server的運(yùn)行權(quán)限繼承于某個(gè)專(zhuān)屬的系統(tǒng)虛賬戶(hù),并假設(shè)其權(quán)限足以訪問(wèn)所有郵箱文件。因此,郵箱文件的擁有者應(yīng)該是POP/IMAP server所有的那個(gè)虛賬戶(hù)。但是,如果必要的話(huà),postfix也容許你自己決定文件的擁有者。你可以讓每個(gè)郵箱文件都有自己的擁有者或是讓同網(wǎng)域的所有郵箱文件都同屬于一個(gè)擁有者,但不同網(wǎng)域的郵箱分屬不同的擁有者。
virtual_uid_maps于virtual_gid_maps參數(shù)決定了postfix的virtual MDA投遞郵件到虛擬郵箱時(shí),應(yīng)該繼承的系統(tǒng)賬戶(hù)。假設(shè)所有虛擬郵箱都屬于同一個(gè)賬戶(hù),則你可以使用static映射方式,直接指定virtual所要繼承的UID與GID;
virtual_uid_maps = static:1003
virtual_gid_maps = static:1005
這會(huì)使得virtual MDA以UID 1003、GID 1005的身份來(lái)訪問(wèn)任何郵箱文件。如果你希望virtual以不同的UID身份來(lái)訪問(wèn)不同的郵箱文件,你必須另外準(zhǔn)備一個(gè)查詢(xún)表,定義各個(gè)虛擬郵箱地址與UID之間的對(duì)應(yīng)關(guān)系,然后將virtual_uid_maps指向 此查詢(xún)表;
virtual_uid_maps = hash:/etc/postfix/virtual_uids
如果大部分的虛擬郵箱文件屬于固定的擁有者,但也有某些是屬于不同的UID,你可以混合使用static與查詢(xún)表:
virtual_uid_maps = hash:/etc/postfix/virtual_uids static:1003
virtual_gid_maps參數(shù)的用法與virtual_uid_maps完全相同。
定義郵箱文件與擁有者對(duì)應(yīng)關(guān)系的/etc/postfix/virtual_uids文件,其索引鍵是郵箱文件所屬的郵件地址,而對(duì)應(yīng)值是郵箱文件擁有者的UID(或GID)。舉例來(lái)說(shuō),如果我們希望ora.com網(wǎng)域的所有郵箱都屬于同一個(gè)UID,而oreilly.com的郵箱屬于另一個(gè)UID。
虛擬別名
即使是虛擬網(wǎng)域,postfix也能將其郵件投遞到本地郵箱,或是轉(zhuǎn)寄到其他站點(diǎn)。既然所有類(lèi)型的收件地址都會(huì)被檢查是否為虛擬別名,所以,只要把轉(zhuǎn)寄地址放在virtual_alias_maps所指的文件即可。請(qǐng)確定virtual_alias_maps參數(shù)指向一個(gè)虛擬別名表:
virtual_alias_maps = hash:/etc/postfix/virtual_alias
/etc/postfix/virtual_alias文件包含了要被轉(zhuǎn)寄到他處的虛擬地址:
kdent@oreilly.com kyle.dent@onlamp.com
不要將同一個(gè)網(wǎng)域同時(shí)列在virtual_mailbox_domains和virtual_alias_domains中。對(duì)于同時(shí)含有郵箱與別名的虛擬網(wǎng)域,請(qǐng)使用virtual_mailbox_domains。如果所有地址都是別名,請(qǐng)使用virtual_alias_domains。
無(wú)限別名地址
無(wú)論是虛擬別名還是虛擬郵箱,它們的查詢(xún)表都可以含有一個(gè)“無(wú)限別名地址”--只有網(wǎng)域部分沒(méi)有人名部分的郵件地址。無(wú)限別名地址所對(duì)應(yīng)的郵箱(如果是虛擬郵箱的話(huà))或轉(zhuǎn)寄地址(如果是虛擬別名的話(huà)),用來(lái)承接外界寄到該網(wǎng)域的不明用戶(hù)的郵件。無(wú)限別名地址應(yīng)該謹(jǐn)慎使用,因?yàn)樗鼈円欢〞?huì)收到大量垃圾郵件。發(fā)送垃圾郵件者常用“字典攻擊法”來(lái)濫發(fā)垃圾郵件,所以你的郵件服務(wù)器會(huì)時(shí)常收到寄信給不明用戶(hù)的要求。如果設(shè)定了無(wú)限別名地址,等于是讓這些發(fā)送垃圾郵件者有機(jī)會(huì)塞爆你的郵箱。
無(wú)限別名虛擬郵箱
第一步是找出一個(gè)郵箱來(lái)承接所有寄給不明用戶(hù)的郵件。你可以使用現(xiàn)有的郵箱,或是另外創(chuàng)建一個(gè)新郵箱。決定好郵箱之后,在virtual_mailbox_maps所指的查詢(xún)表增加一筆無(wú)限別名地址記錄;
@ora.com ora.com/service
無(wú)限別名虛擬別名
無(wú)限別名虛擬別名的設(shè)定步驟,很類(lèi)似無(wú)限別名虛擬郵箱。第一步,先選定一個(gè)郵箱地址來(lái)接收所有寄到不明別名等郵件,然后在virtual_alias_maps所指的查詢(xún)表定義無(wú)限別名所對(duì)應(yīng)的地址:
@ora.com customer.service@onlamp.com
除非你的系統(tǒng)沒(méi)有任何虛擬郵箱,否則不應(yīng)該設(shè)置無(wú)限別名虛擬別名。因?yàn)閜ostfix會(huì)先展開(kāi)虛擬別名,然后才檢查虛擬郵箱;如果你設(shè)置了無(wú)限別名虛擬別名,它將攔截掉所有的郵件,包括原本應(yīng)該投遞到虛擬郵箱的郵件。
在設(shè)置了無(wú)限別名的情況下,如果還希望虛擬郵箱能夠收到郵件,唯一辦法是將虛擬別名展開(kāi)成虛擬郵箱地址。舉例來(lái)說(shuō),假設(shè)下面是虛擬郵箱查詢(xún)表的內(nèi)容:
info@ora.com ora.com/info
info@oreilly.com oreilly.com/info
那么,含有無(wú)限別名的虛擬別名表,應(yīng)該要含有上述虛擬郵箱的別名地址:
info@ora.com info@ora.com
info@oreilly.com info@oreilly.com
kdent@oreilly.com kyle.dent@onlamp.com
@ora.com customer.service@onlamp.com
如此一來(lái),寄到info@oreilly.com的郵件,就不至于被@ora.com無(wú)限別名攔截掉了。
虛擬網(wǎng)域搭配特殊格式的郵箱
我們要討論的最后一種操作模式,是在一個(gè)使用特殊郵箱格式的系統(tǒng)上假設(shè)虛擬網(wǎng)域。在這類(lèi)系統(tǒng)上,postfix本身不做投遞工作,而是使用LMTP協(xié)議將郵件托付給知道如何訪問(wèn)特殊郵箱的程序。
因?yàn)閜ostfix必須先收下郵件后才轉(zhuǎn)交給LMTP server,所以postfix必須知道它要收下哪些虛擬網(wǎng)域名稱(chēng)的郵件。請(qǐng)將這些網(wǎng)域的名稱(chēng)列于virtual_mailbox_domains參數(shù):
virtual_mailbox_domains = ora.com, oreilly.com
你還必須逐一列出每一個(gè)郵件地址,這樣postfix才能夠知道哪些收件地址是有效的,并拒收不明用戶(hù)的郵件。請(qǐng)將virual_mailbox_maps參數(shù)指向有效地址查詢(xún)表:
virtual_mailbox_maps = hash:/etc/postfix/virtual
因?yàn)閜ostfix只需要知道地址的有效性而不參與投遞工作,所以/etc/postfix/virtual查詢(xún)表只有索引鍵的部分有意義,對(duì)應(yīng)值的部分沒(méi)有作用。然而,查詢(xún)表的格式不容許我們省略對(duì)應(yīng)值,所以仍必須隨便填入數(shù)據(jù);
為了讓postfix能將虛擬網(wǎng)域的郵件交給POP/IMAP server,我們還必須在main.cf的virtual_transport參數(shù)中指定正確的傳送方法,也就是LMTP server的socket是何種形式。假設(shè)LMTP server與postfix都位于同一臺(tái)機(jī)器,而且LMTP server使用unix-domain socket,其文件位置是/var/imap/socket/lmtp,則virtual_transport應(yīng)該這樣設(shè)定:
virtual_transport = lmtp:unix:/var/imap/socket/lmtp
現(xiàn)在,每當(dāng)postfix收到寄給virtual_mailbox_domains所列的任一網(wǎng)域的郵件,都會(huì)通過(guò)LMTP協(xié)議交給同機(jī)器上的POP/IMAP server來(lái)執(zhí)行投遞操作。
投遞到外部程序
先前說(shuō)過(guò),virtual MDA不能處理系統(tǒng)別名文件與個(gè)人的.forward文件。雖然使用virtual_alias_maps可彌補(bǔ)虛擬網(wǎng)域的地址別名問(wèn)題,但是.forward文件的一項(xiàng)重要功能--傳遞郵件內(nèi)容給外部程序,還沒(méi)解決。這表示虛擬網(wǎng)域的地址沒(méi)有自動(dòng)回信功能,也不能假設(shè)郵遞列表管理系統(tǒng)。本節(jié)將示范如何利用postfix的其他機(jī)制,讓寄到虛擬地址的郵件也可以傳給外部程序。第一個(gè)例子示范如何投遞郵件到一個(gè)自動(dòng)回復(fù)程序,第二個(gè)例子以majordomo MLM來(lái)做示范。
自動(dòng)回信程序的作用,主要是在沒(méi)有任何人員接入操作的情況下,自動(dòng)處理外來(lái)郵件、儲(chǔ)存或處理來(lái)信信息,然后回信給原寄信人?;匦懦绦蚩梢允呛?jiǎn)單的腳步,也可以是以C或任何語(yǔ)言寫(xiě)成的復(fù)雜程序。
假設(shè)我們要提供一個(gè)供客戶(hù)請(qǐng)求信息的服務(wù),只要客戶(hù)寄信到特定地址,就回復(fù)一封含有請(qǐng)求信息的回信。我們不希望使用人工處理這種千篇一律的機(jī)械工作,所以,最好的辦法是寫(xiě)一個(gè)自動(dòng)回復(fù)程序。
將虛擬網(wǎng)域的郵件傳給自動(dòng)回信程序
虛擬網(wǎng)域的郵件不能通過(guò).forward機(jī)制傳給外部程序,因此,若想讓自動(dòng)回信程序能收到虛擬地址的郵件,我們必須在master.cf中增加一個(gè)能投遞郵件到外部程序的特殊MDA,然后使用傳輸表將特定地址的郵件交給這個(gè)特殊的MDA處理。
許多自動(dòng)回信程序一次只能處理一封來(lái)信,而且一次只能回一封信。對(duì)于每一種MDA,都有一個(gè)限制收件人數(shù)量的mda_destination_recipient_limit參數(shù),其中的mda是MDA在master.cf里的服務(wù)名稱(chēng)。
自動(dòng)回信程序的設(shè)計(jì)
如果你想設(shè)計(jì)自己的自動(dòng)回信程序,有些重要考慮事項(xiàng)必須注意。首先,同時(shí)也可能是最重要的事項(xiàng),就是程序的數(shù)據(jù)來(lái)源是網(wǎng)絡(luò)--一種不可信賴(lài)的數(shù)據(jù)源。千萬(wàn)別假設(shè)你要處理的數(shù)據(jù)一定會(huì)是什么樣子,除了它們被可以安排成能征服你的系統(tǒng)之外。無(wú)論任何情況,都不應(yīng)該調(diào)用shell來(lái)處理不可信的外來(lái)數(shù)據(jù),讓外界有機(jī)會(huì)奪取你的系統(tǒng)的訪問(wèn)權(quán)。
另一個(gè)要考慮的事項(xiàng),是禮節(jié)教養(yǎng)問(wèn)題。想像一下,如果自動(dòng)回信程序的回信對(duì)象是一個(gè)含有幾千人的郵箱列表,將客戶(hù)請(qǐng)求的信息泄漏給幾千人,或是讓幾千人收到不相干的郵件,應(yīng)該都不是你原意見(jiàn)到的事。因此,在實(shí)際回信之前,最好先檢查寄件人地址是否為owner-list或list-request之類(lèi)的形式。此外,還有一些地址恐怕也是你不想回復(fù)的,像postmaster、daemon、majordomo等。你的程序應(yīng)該將自己的信封地址設(shè)成空字符串,以免造成郵件循環(huán)。
許多郵件列表會(huì)利用precedence:標(biāo)題欄來(lái)注明它自己。它們通常使用bulk之類(lèi)的值來(lái)表示郵件的性質(zhì)。你的回信程序應(yīng)該要檢查precedence:標(biāo)題欄的值,如果發(fā)現(xiàn)bulk、list或junk之類(lèi)的字樣,就不必回信了。
最后,確定你的程序能記錄每封來(lái)信的處理狀況。一旦postfix將郵件托付給你的程序,你的程序就有檢查錯(cuò)誤的責(zé)任,并為管理員提供可以在事后追查問(wèn)題的線索。
在虛擬網(wǎng)域假設(shè)郵件列表管理系統(tǒng)
第二各例子,我們要示范如何在虛擬網(wǎng)域上設(shè)置一個(gè)郵件列表。
postfix與MLM之間的連接是通過(guò)別名文件:利用別名文件的:include;機(jī)制來(lái)展開(kāi)列表,并將管理用途的別名對(duì)應(yīng)到實(shí)際地址與MLM管理程序。然而,只有l(wèi)ocal MDA才會(huì)處理系統(tǒng)的別名文件,virtual MDA沒(méi)有這方面的功能。
虛擬郵件列表的原理,是在本地網(wǎng)域下創(chuàng)建列表的相同版本,這各本地版本僅供系統(tǒng)內(nèi)部使用,外界用戶(hù)所用的仍是虛擬地址,他們并部知道本地版本的存在。在決定本地版本的名稱(chēng)時(shí),我們可設(shè)法將虛擬名稱(chēng)包含在內(nèi),以便容納同系統(tǒng)上的其他虛擬網(wǎng)域列表。
通過(guò)上述文章的描述,我們可以清楚對(duì)Postfix虛擬網(wǎng)絡(luò)域名有個(gè)了解,希望大家在以后的學(xué)習(xí)、辦公中都能用到!
【編輯推薦】
- Postfix里的POP與Imap介紹
- Postfix的投遞過(guò)程詳解
- Postfix中的地址操作大全
- 教你如何設(shè)置Postfixadmin的自動(dòng)回復(fù)
- 如何安裝PostfixAdmin
- 重裝網(wǎng)域服務(wù)器二招秘訣
- 2010年第三季度全球互聯(lián)網(wǎng)域名注冊(cè)總數(shù)接近2.02億
- 互聯(lián)網(wǎng)域名系統(tǒng)(DNS)安全到達(dá)里程碑