技術文檔
Postfix是什么?詳見:http://zh.wikipedia.org/wiki/Postfix
關于Postfixpostfix的產生是為了替代傳統的sendmail.相較于sendmail,postfix在速度,性能和穩定性上都更勝一籌。現在目前非常多的主流郵件服務其實都在采用postfix.當我們需要一個輕量級的的郵件服務器是,postfix不失為一種選擇。1.postfix是免費的:postfix想要作用的范圍是廣大的Internet用戶,試圖影響大多數的Internet上的電子郵件系統,因此它是免費的。
2.更快:postfix在性能上大約比sendmail快三倍。一部運行postfix的臺式PC每天可以收發上百萬封郵件。
3.兼容性好:postfix是sendmail兼容的,從而使sendmail用戶可以很方便地遷移到postfix。Postfix支持/var[/spool]/mail、/etc/aliases、NIS、和~/.forward文件。
4. 性能更好:postfix被設計成在重負荷之下仍然可以正常工作。當系統運行超出了可用的內存或磁盤空間時,postfix會自動減少運行進程的數目。當處理的郵件數目增長時,postfix運行的進程不會跟著增加。
5.更靈活:postfix是由超過一打的小程序組成的,每個程序完成特定的功能。你可以通過配置文件設置每個程序的運行參數。
6. 安全性postfix具有多層防御結構,可以有效地抵御惡意入侵者。如大多數的postfix程序可以運行在較低的權限之下,不可以通過網絡訪問安全性相關的本地投遞程序等等。下面來介紹linux上如何搭建和配置postfix服務:1.關掉sendmail相關的所有服務,最好是直接卸載sendmail.#servicesendmailstop#chkconfigsendmailoff#rpm-qa|grepsendmail|xargsrpm-e2.安裝postfix.redhat6.0以上版本應該是默認集成了postfix服務的,假如沒有安裝的話,可以手動安裝。rpm-qa|greppostifx(查看是否安裝)yuminstallpostfix3.安裝完成后,修改配置文件:/etc/postfix/main.cfgvi/etc/postfix/main.cfmyhostname=sample.test.com 設置系統的主機名mydomain=test.com 設置域名(我們將讓此處設置將成為E-mail地址@后面的部分)myorigin=$mydomain 將發信地址@后面的部分設置為域名(非系統主機名)inet_interfaces=all 接受來自所有網絡的請求mydestination=$myhostname,localhost.$mydomain,localhost,$mydomain 指定發給本地郵件的域名home_mailbox=Maildir/ 指定用戶郵箱目錄保存退出!4.為本機添加DNSserver.為什DNSServer?因為在郵件發送過程中,需要把郵件地址的domain地址轉化成IP地址,再去發送給對應的收件人,這里涉及到DNS中的A記錄和MX記錄相關的知識,不熟悉的同學可以google或者百度腦補一下:-)如何添加DNSserver呢,DNSserver去哪里尋找?vim/etc/resolv.conf添加如下行:nameserver8.8.8.8nameserver8.8.4.4上面用的8.8.8.8/8.8.4.4是GoogleFreeDNSserver,當然還有很多免費的DNSserver供大家使用,可以google一下:-)5.測試一下郵件是否能夠發送成功:命令行輸入$:echo"MailContent"|mail-s"MailSubject"xxxx@xxx.comNote:ifyouseebelowwaringsafteryourunabovecommand.send-mail:warning:inet_protocols:IPv6supportisdisabled:Addressfamilynotsupportedbyprotocolsend-mail:warning:inet_protocols:configuringforIPv4supportonlypostdrop:warning:inet_protocols:IPv6supportisdisabled:Addressfamilynotsupportedbyprotocolpostdrop:warning:inet_protocols:configuringforIPv4supportonlythatmeansyoudonthaveIPv6configuredinyourOSsnetworkstack,butyourmailer(presumablypostfix)isconfiguredtouseIPv6.SincethereisnoIPv6foryourmailertouse,itswarningyouthatitsonlygoingtouseIPv4.Todisablethewaringmesssage,goto/etc/postfix/main.cfandchangefrom:inet_protocols=allto:inet_protocols=ipv4Thiswillonlyuseipv4andthewarningmessagewillgoaway.Youwillhavetoissueastopandstartforpostfixtoregisterthechange.servicepostfixrestart6.查看log,確認郵件發送狀態:Postfix郵件的log位置是:/var/log/maillog發送成功的話,會返回250和OK,也可以去自己的郵件客戶端查收。一切OK的話,那Postfixmailservice應該就搭建成功了。另外一些有用的postfix維護命令,一遍日常的檢測和維護:mailq:會列出當前在postfix發送隊列中的所有郵件postsuper-dALL:刪除當前等待發送隊列的所有郵件,包括發送失敗的退信當然還有很多,就不一一列舉了,大家可以網上搜索擴展。