Postfix
自宅から外部へメールを送信するのとkajukaju.netドメイン宛のメールを受信するためにSMTPサーバを導入する。
KAJUKAJU.netが接続しているISPではOutbound 25 blockが導入されているため外部へのメール送信は全てISPのSMTPサーバ経由で配送させる。
Solaris9は標準でsendmailがインストールされているのでPostfixをインストールする前にアンインストールしておく。
アンインストールはSUNWsndmrとSUNWsndmuパッケージを削除すればよい。
# pkginfo | grep SUNWsnd
system SUNWsndmr Sendmail root
system SUNWsndmu Sendmail user# pkgrm SUNWsndmr SUNWsndmu
Postfixを起動する専用ユーザを作成する。
# groupadd -g 10051 postfix
# groupadd -g 10052 postdrop
# useradd -u 10051 -g 10051 -d /var/spool/postfix -s /bin/false postfix
Postfixの公式サイトより最新のソースファイルを入手しインストールする。
$ wget ftp://postfix.get7.biz/postfix/official/postfix-2.1.3.tar.gz
$ tar xvzf postfix-2.1.3.tar.gz
$ cd postfix-2.1.3
$ make makefiles CC=gcc CCARGS='-DDEF_CONFIG_DIR=\"/var/postfix/etc\"'
# make install
Postfixの設定ファイルを編集。
/var/postfix/etc/main.cf
myhostname = postman.kajukaju.net
mydomain = kajukaju.net
myorigin = $myhostname
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks_style = subnet
alias_maps = dbm:/etc/aliases
alias_database = dbm:/etc/aliases
home_mailbox = Mailbox
sample_directory = no
バウンスメール受信用、内部エラー発生時受信用の管理者アカウントを作成する。
実際にはこれら管理者アカウント宛のメールは実メールに転送する。
/etc/aliaces
# Local mail relay config file
MAILER-DAEMON: postmaster
postmaster: root
postfix: root# Person who should get root's mail
root: user
Aliasを有効にする。
# newaliases
起動スクリプトを作成する。
/etc/init.d/postfix
#!/sbin/sh
# postfix scriptcase "$1" in
'start')
if [ -f /var/postfix/sbin/postfix ]; then
/var/postfix/sbin/postfix start
fi
;;'stop')
/var/postfix/sbin/postfix stop
;;'reload')
/var/postfix/sbin/postfix reload
;;'abort')
/var/postfix/sbin/postfix abort
;;'flush')
/var/postfix/sbin/postfix flush
;;*)
echo "Usage: $0 {start|stop|reload|abort|flush}"
exit 1
;;esac
exit 0
ランレベル2のときにPostfixが起動するようにシンボリックリンクをはる。
# chmod 744 /etc/init.d/postfix
# ln -s /etc/init.d/postfix /etc/rc2.d/S88postfix
# ln -s /etc/init.d/postfix /etc/rc0.d/K36postfix
Postfixを起動する。
# /var/postfix/sbin/postfix start
postfix/postfix-script: starting the Postfix mail system# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 22071 1 0 15:05:03 ? 0:00 /var/postfix/bin/master
postfix 22072 22071 0 15:05:03 ? 0:00 pickup -l -t fifo -u
postfix 22073 22071 0 15:05:03 ? 0:00 qmgr -l -t fifo -u
動作確認をする。
# telnet postman.kajukaju.net 25
Trying 192.168.1.cc...
Connected to postman.kajukaju.net.
Escape character is '^]'.220 postman.kajukaju.net ESMTP Postfix
HELO localhost
250 postman.kajukaju.net
MAIL FROM:
250 Ok
RCPT TO:
250 Ok
DATA
354 End data with.
Subject:Test mail
This mail is test mail.
.
250 Ok: queued as 9DE1560C24
QUIT
221 Bye
Connection closed by foreign host.
メールが受信できていることを確認する。
/var/mail/user
From root@kajukaju.net Sat Jun 26 15:20:38 2004
Return-Path:
X-Original-To: user@kajukaju.net
Delivered-To: user@kajukaju.net
Received: from localhost (client.kajukaju.net [192.168.1.xx])
by mail.kajukaju.net (Postfix) with SMTP id 531822BB
for; Sat, 26 Jun 2004 15:19:59 +0900 (JST)
Subject:Test
Message-Id: <20040626061959.531822BB@postman.kajukaju.net>
Date: Sat, 26 Jun 2004 15:19:59 +0900 (JST)
From: root@kajukaju.net
To: undisclosed-recipients:;This mail is test mail.
サーバ稼働時のログ。
# tail /var/log/maillog
Jun 26 15:19:42 barbara postfix/smtpd[22130]: [ID 197553 mail.info] connect from client.kajukaju.net[192.168.1.xx]
Jun 26 15:20:18 barbara postfix/smtpd[22130]: [ID 197553 mail.info] 531822BB: client=client.kajukaju.net[192.168.1.xx]
Jun 26 15:20:38 barbara postfix/cleanup[22133]: [ID 197553 mail.info] 531822BB:message-id=<20040626061959.531822BB@postman.kajukaju.net>
Jun 26 15:20:38 barbara postfix/qmgr[22127]: [ID 197553 mail.info] 531822BB: from=, size=389, nrcpt=1 (queue active)
Jun 26 15:20:38 barbara postfix/local[22134]: [ID 197553 mail.info] 531822BB: to=, relay=local, delay=39, status=sent (delivered to maildir)
Jun 26 15:20:38 barbara postfix/qmgr[22127]: [ID 197553 mail.info] 531822BB: removed
Jun 26 15:20:41 barbara postfix/smtpd[22130]: [ID 197553 mail.info] disconnect from client.kajukaju.net[192.168.1.xx]
