目前最重要的網絡應用是什麼?毫無疑問,依然是電子郵件!
mail--隻是一個操作界面,并不完成實質性的工作,它相當于上門服務的郵政快遞員,和更複雜一些的mutt以及windows上的outlook(outlook有所不同,因為它內建了大部分的東西)是一樣的;一般情況下,mail的配置檔案中總會有一行:
set sendmail="/usr/bin/msmtp"
這就是說mail在接受了使用者的輸入之後,使用msmtp發送之,當然也可以使用别的,或者說快遞員收到你要發的快遞後,使用msmtp這個組織來為你服務。
fetchmail--它從POP郵箱中取回郵件,但是并不處理,隻是取回而已,當然它也有預設操作,這正是unix哲學中“隻做好一件事”的展現;
procmail--它負責處理fetchmail取回的郵件,轉發,還是本地接收;一般情況下在fetchmail的配置檔案中有下面這麼一行資訊:
mda "/usr/bin/procmail -d user"
這就是說當fetchmail将郵件取回後,procmail将郵件發送給本地使用者user,這樣郵件預設就到了/var/mail/user這個檔案裡面了。
msmtp--它将“郵差”送上的信件發送到目的地郵局,類似sendmail。
總的過程是:
寫信->mail->msmtp->smtp伺服器->...>pop伺服器(郵箱)->fetchmail->procmail->讀信
最終,我們發現,真正做事的是發送者和取回者,也就是msmtp和fetchmail,而mail/mutt/和procmail僅僅是一個直接和使用者接觸的代理。于是,我們知道,所謂的126.com和163.com等提供的WEB頁面僅僅是一個內建了所有東西的操作界面,有人會遇到在使用這些郵箱的時輸入正文的時候會被自動換行,這些并不是郵件伺服器的問題,正是WEB頁面導緻的,可能是為了美觀,或者别的什麼,也可能是頁面的作者很菜。實際上,背景的郵件伺服器是不會觸動你郵件的任何格式的,它們隻是幫你将郵件送到目的地,如果收到郵件後發現格式變了,那一定是發送的時候格式就變了,可能隐藏了WEB頁面的送出之中而不為你所見也不為你所控制,于是你大肆抱怨郵件伺服器。就連微軟的郵件伺服器都不會篡改你信件的格式,别的伺服器會篡改嗎?不要怪伺服器,要怪用戶端。
本文轉自 dog250 51CTO部落格,原文連結:http://blog.51cto.com/dog250/1271193