1、安裝前的準備工做:html
1.卸載系統默認安裝postfix
node
# service postfix stop # chkconfig postfix off # rpm -e postfix --nodeps
2.安裝所需的rpm包,這包括如下這些mysql
db4-devel, openssl-devel, cyrus-sasl-develsql
2、啓動依賴的服務:
一、啓動mysql數據庫,並給mysql的root用戶設置密碼:
數據庫
# service mysqld start # chkconfig mysqld on # mysqladmin -uroot password 'your_password'
二、啓動saslauthd服務,並將其加入到自動啓動隊列:
vim
# service saslauthd start # chkconfig saslauthd on
3、安裝配置postfix
bash
# groupadd -g 2525 postfix # useradd -g postfix -u 2525 -s /sbin/nologin -M postfix # groupadd -g 2526 postdrop # useradd -g postdrop -u 2526 -s /sbin/nologin -M postdrop # tar zxvf postfix-2.9.3.tar.gz # cd postfix-2.9.3 # make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS ' 'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2 -lssl -lcrypto' # make # make install
注:MySQL經過通用二進制安裝在/usr/local/mysql下網絡
按照如下的提示輸入相關的路徑([]號中的是缺省值,」]」後的是輸入值,省略的表示採用默認值)
dom
install_root: [/] / tempdir: [/root/postfix-2.9.3] /tmp/postfix config_directory: [/etc/postfix] /etc/postfix daemon_directory: [/usr/libexec/postfix] command_directory: [/usr/sbin] queue_directory: [/var/spool/postfix] sendmail_path: [/usr/sbin/sendmail] newaliases_path: [/usr/bin/newaliases] mailq_path: [/usr/bin/mailq] mail_owner: [postfix] setgid_group: [postdrop] html_directory: [no]/var/www/html/postfix manpages: [/usr/local/man] readme_directory: [no]
生成別名二進制文件:
# newaliaseside
2.進行一些基本配置,測試啓動postfix並進行發信
# vim /etc/postfix/main.cf
修改如下幾項爲您須要的配置
myhostname = mail.magedu.com
myorigin = magedu.com
mydomain = magedu.com
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 192.168.1.0/24, 127.0.0.0/8
說明:
myorigin參數用來指明發件人所在的域名,即作發件地址假裝;
mydestination參數指定postfix接收郵件時收件人的域名,即您的postfix系統要接收到哪一個域名的郵件;
myhostname 參數指定運行postfix郵件系統的主機的主機名,默認狀況下,其值被設定爲本地機器名;
mydomain 參數指定您的域名,默認狀況下,postfix將myhostname的第一部分刪除而做爲mydomain的值;
mynetworks 參數指定你所在的網絡的網絡地址,postfix系統根據其值來區別用戶是遠程的仍是本地的,若是是本地網絡用戶則容許其訪問;
inet_interfaces 參數指定postfix系統監聽的網絡接口;
注意:
一、在postfix的配置文件中,參數行和註釋行是不能處在同一行中的;
二、任何一個參數的值都不須要加引號,不然,引號將會被看成參數值的一部分來使用;
三、每修改參數及其值後執行 postfix reload 便可令其生效;但若修改了inet_interfaces,則需從新啓動postfix;
四、若是一個參數的值有多個,能夠將它們放在不一樣的行中,只須要在其後的每一個行前多置一個空格便可 , postfix會把第一個字符爲空格或tab的文本行視爲上一行的延續;
4、爲postfix提供SysV服務腳本/etc/rc.d/init.d/postfix,內容以下(#END 以前):
#!/bin/bash # # postfix Postfix Mail Transfer Agent # # chkconfig: 2345 80 30 # description: Postfix is a Mail Transport Agent, which is the program \ # that moves mail from one machine to another. # processname: master # pidfile: /var/spool/postfix/pid/master.pid # config: /etc/postfix/main.cf # config: /etc/postfix/master.cf # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ $NETWORKING = "no" ] && exit 3 [ -x /usr/sbin/postfix ] || exit 4 [ -d /etc/postfix ] || exit 5 [ -d /var/spool/postfix ] || exit 6 RETVAL=0 prog="postfix" start() { # Start daemons. echo -n $"Starting postfix: " /usr/bin/newaliases >/dev/null 2>&1 /usr/sbin/postfix start 2>/dev/null 1>&2 && success || failure $"$prog start" RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/postfix echo return $RETVAL } stop() { # Stop daemons. echo -n $"Shutting down postfix: " /usr/sbin/postfix stop 2>/dev/null 1>&2 && success || failure $"$prog stop" RETVAL=$? [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/postfix echo return $RETVAL } reload() { echo -n $"Reloading postfix: " /usr/sbin/postfix reload 2>/dev/null 1>&2 && success || failure $"$prog reload" RETVAL=$? echo return $RETVAL } abort() { /usr/sbin/postfix abort 2>/dev/null 1>&2 && success || failure $"$prog abort" return $? } flush() { /usr/sbin/postfix flush 2>/dev/null 1>&2 && success || failure $"$prog flush" return $? } check() { /usr/sbin/postfix check 2>/dev/null 1>&2 && success || failure $"$prog check" return $? } restart() { stop start } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) stop start ;; reload) reload ;; abort) abort ;; flush) flush ;; check) check ;; status) status master ;; condrestart) [ -f /var/lock/subsys/postfix ] && restart || : ;; *) echo $"Usage: $0 {start|stop|restart|reload|abort|flush|check|status|condrestart}" exit 1 esac exit $? # END
爲此腳本賦予執行權限:# chmod +x /etc/rc.d/init.d/postfix將postfix服務添加至服務列表:# chkconfig --add postfix設置其開機自動啓動:# chkconfig postfix on使用此腳本從新啓動服務,以測試其可否正常執行:# service postfix restart此時可以使用本地用戶測試郵件收發了。