讓hmailserver的用戶使用各自的中繼來發送郵件
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
前些日子與hunrybecky兄說到hmailserver的逐帳號中繼,確實,直接擁有這個功能的郵件服務器軟件貌似不多,以前在考慮hmailserver部署的一些問題的時候有參考過dbmailserver的官方文檔,所以發現dbmailserver有這個功能,至于mdaemon倒沒太注意。這個逐帳號中繼也就是說讓沒有郵件用戶使用自己的中繼來發送,以免所有的帳號使用同一個中繼帳號來發送,導致這個帳號使用過度而被封掉或被某些會驗證來路的服務器所阻止。[br][br]另外也能解決一個問題,所有用戶共同使用同一個帳號的時候,如果你不在郵件客戶端中添加回復地址為自己的地址,對方自動回復的郵件就會發往中繼郵箱,因為對方回復的郵件頭中都找不到發件人的信息,所以也無法讓hmailserver來根據頭信息分揀郵件,再一個問題就是發送失敗的信息再怎么折騰都只能發送到中繼郵箱,所以之前我只能在自己的郵件客戶端中設置一個中繼郵箱的帳號,然后手工把退信回復給所有人。汗,這還只是在用戶不多的情況下,而且很多發送失敗的郵件都不用通知發件人,才沒有那么多工作量。如果讓用戶使用各自的中繼來發送,那么a用戶就使用a用戶自己的中繼郵箱,如果退信或自動回復,會回復到a用戶自己的中繼郵箱,再讓郵件服務器pop3抓取回來,ok,完成了所有步驟。[br][br]我以前和現在所說的這些關于hmailserver的功能或問題,都建立在這樣一個環境上,在外部有自己的企業郵箱,在公司局域網建立一個內部郵件服務器,使用的域名與外部企業郵局的域名一樣,當然,這個域名只是虛擬的假的,這樣一個做法只是為了減少同一個局域網的郵件不用到外部繞一圈了再回來,至于如果你有光纖接入或固定ip,或其他的環境問題,我沒有去考慮,因為目前我就只有這樣一個環境。好了,下面踏入正題。[br][br]最近一直在思考這個問題,在hmailserver的官方論壇問了一下,老外好干脆,甩了兩個詞,route,rule。趁著這兩天服務器宕機,將這些所想到的問題都在hmailserver上測試了一下,發送了幾十封測試郵件,每封都研究一下頭信息,終于把這個問題解決了,解決方法也如老外說的很簡單,路由加規則,說起來很簡單,但測試這個還是要死不少腦細胞的。[br][br]經過測試我有一個發現,在smtp協議中設置的那個中繼才是默認管用的中繼,而你路由中設置的中繼,默認好像是不生效的,這個問題還是讓我有點頭暈,畢竟hmailserver的文檔是英文的,我的英文水平讓我無法全盤了解整個系統,之前我寫另一篇hmailserver相同域名之間郵件的轉發的時候,又好像生效了,有些糊涂,接下來的日子還是慢慢測試看。我這樣測試過,不管如何設置路由,默認中繼出去的郵件頭都是smtp協議中設置的那個中繼帳號,如果把那個帳號取消掉了,郵件就是直接由hmailserver的smtp發送出去的,但如果你設置了規則讓郵件走路由,那路由中繼的優先級是高于默認的那個中繼的。[br][br]有了這個發現,后來的問題就簡單了,設置路由,然后添加相應的規則不就解決了?沒那么簡單,添加了一個路由后就卡住了,第二個路由如何添加?域名不允許重復,該如何處理?看了半天文檔,看來看去也看不太明白,就那么一句話“the domain that this route should be applied to. the domain name is case insensitive.”,到底是大小寫不敏感還是可以隨便寫?應該是大小寫不敏感,不管了,反正這里隨便寫幾個字母也能保存,然后設置好中繼帳號,接下來就設置規則了,規則名隨便,criteria這里還是使用了個use and,應該使用use or也是可以的,但好像有一次測試的時候失敗了。規則是這樣的,predefined field選from,search type是equals,value是在路由中添加的那個中繼帳號,意思就是當發件人等于這個郵箱的時候觸發,剛開始給action添加使用路由,測了半天沒成功,也不知道規則生效沒,后來改了一下,讓action是delete e-mail,這樣簡單一點,只要規則生效了,那封郵件會自動刪除,是收不到的,這樣直接測試到規則生效為止,后來終于發現search type使用等于equals是不行的,改為contains后終于那個郵件收不到了,呃,仔細看一下郵件頭,都是如from: “=?gb2312?b?uti71ots?=”這樣一個寫法,原來如此,不能搞成等于啊,在這里也順便提一下,郵件頭里有很多東西比較有用,比如規則里面的自定義字段。[br][br]既然規則生效,把action改成send using route,使用的路由當然就是你之前定義的咯,再次測試,終于,郵件發送成功,查看接收到的郵件頭,發現里面的信息已經變成路由中的中繼帳號了,呼呼,任務完成,看來添加路由時候的domain欄不輸入域名也是可以的。[br][br]接下來該怎么辦就不用多說了,添加相應的路由,添加相應的規則,然后就ok了,麻煩是麻煩了一點,沒有達到咱所想的和dbmailserver那樣,直接在外部郵箱里設置一次就可以了,但咱這是免費的不是,手動解決了這個問題還是比較有成就感的,哈哈。 [br]
該文章在 2011/4/9 10:44:28 編輯過 |
關鍵字查詢
相關文章
正在查詢... |