郵件服務器(二)——centos6.5編譯安裝postfix-2.11.1

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此時可以使用本地用戶測試郵件收發了。

相關文章
相關標籤/搜索