postfix是Wietse Venema在IBM的GPL協議之下開發的MTA(郵件傳輸代理)軟件。postfix是Wietse Venema想要為使用最廣泛的sendmail提供替代品的一個嘗試。在Internet世界中,大部分的電子郵件都是通過sendmail來投遞的,大約有100萬用戶使用sendmail,每天投遞上億封郵件。這真是一個讓人吃驚的數字。Postfix試圖更快、更容易管理、更安全,同時還與sendmail保持足夠的兼容性。
1、首先設置hostname
事先設置好hostname的話,Postfix可以自動配置好很多參數,節省時間。我們要假設的網站域名為100p.com,要搭建獨立的郵件服務器,就把主機名設置為mail.100p.com。
#echo 'mail.100p.com' > /etc/hostname #hostname -F /etc/hostname
2、安裝Postfix
#rpm -ivh *.rpm
我們的系統一般默認已經安裝好Postfix。
#rpm -qa | grep postfix postfix-2.6.6-6.el6_5.x86_64
3、基本配置
Postfix的配置文件位於/etc/postfix/main.cf。一般有以下幾個重要參數需要設置:
*myhostname* //主機名 myhostname = mail.100p.com *myorigin* //外發郵件時發件人的郵件域名 myorigin = $myhostname //在通過Postfix發送郵件的時候,如果From字段不完整,Postfix會根據myorigin的值將地址補全為 *@mail.100p.com *mynetworks* //需要收發的客戶端的地址 mynetworks = 20.0.2.1/144, 20.0.8.1/144, 127.0.0.0/8 //mynetworks指定了本地網絡的IP段,默認只包含主機自己,你可以添加需要收發的客戶端的地址。 *mydomain* //使用郵件域 mydomain = 100p.com //mydomain 設置本地網絡的郵件域 *mydestination* //可接受郵件地址域名 mydestination = 100p.com, mail.100p.com //mydestination指定了postfix在收到這些域名地址為目標的郵件時,作為接受方收下郵件。如果收到的郵件既不符合轉發規則,又不符合接受規則,則拒絕收信。 *sasl* //sasl認證 smtpd_sasl_auth_enable = no //smtp不需要SASL認證時,設置為no。
4、 重啟服務
配置完postfix的主要參數之后,需要重啟postfix服務,重啟方法如下:
#service postfix restart
#/etc/init.d/postfix restart
服務重啟失敗,postfix - master dead but pid file exists
1 remove /var/spool/postfix/pid/master.pid
如果還存在這個問題,可以查看端口
1 # netstat -lnp | grep :25
殺死進程,重新啟動postfix服務
5、安裝dovecot,啟動服務
1 #service devocot restart
配置文件,添加一下內容
# vi /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp protocols = pop3 disable_plaintext_auth = no ssl = no mail_location = mbox:/var/mail:INBOX=/var/mail/%u
6、測試收郵件,我們搭建的郵件服務器的地址為20.0.2.16,我們使用telnet進行測試:
[root@gio020 postfix]# telnet 20.0.2.16 25 Trying 20.0.2.16... Connected to gio016 (20.0.2.16). Escape character is '^]'. 220 mail.100p.com ESMTP Postfix *MAIL FROM: wangtao@100p.com* // *為要輸入的內容* 發送的郵件地址 250 2.1.0 Ok *RCPT TO: bmc* // 接受的用戶名 250 2.1.5 Ok *DATA* // 發送的內容 354 End data with <CR><LF>.<CR><LF> *This is a test mail.* *.* // 輸入要發送的內容,以點號結束 250 2.0.0 Ok: queued as 172B162C17A *quit* // quit退出測試 221 2.0.0 Bye
發送成功之后就可以再gio016的/var/mail/mbc下查看到剛才發送的郵件
郵件內容如下:
From wangtao@100p.com Thu Sep 22 16:31:56 2016 Return-Path: <wangtao@100p.com> X-Original-To: bmc Delivered-To: bmc@mail.100p.com Received: from gio020 (gio020 [20.0.2.20]) by mail.100p.com (Postfix) with SMTP id 172B162C17A for <bmc>; Thu, 22 Sep 2016 16:31:12 +0800 (CST) DATA This is a test mail.
