メール・サーバー関連のインストール手順


OpenBlockS に Postfix をインストールして、メール・サーバーを運用する

目次

関連リンク

To Do List

  1. サブアドレスのフォルダ直接配信

qmailでできていたサブアドレスによるフォルダ直接配信ができなくなった。 ソースのツリー postfix-2.1.5/examples/qmail-local/qmail-local.txt に、qmail-local をローカル配送エージェントとして使う方法(?)が 載っているようだか、意図がよく分からない。

 #!/bin/sh
 export PATH=$PATH:/usr/local/bin:/var/qmail/bin
 tail +2 | seekablepipe qmail-local -- \
   "$USER" "$HOME" "$LOCAL" "${EXTENSION:+-}" "$EXTENSION"
   "$DOMAIN""$SENDER" ./Maildir/
 e=$?
 (($e == 111)) && exit 75
 (($e == 100)) && exit 77
 exit $e

これを /usr/local/libexec/postqmail-local として保存して、 main.cf の mailbox_command として使えということだろうか。 seekablepipe というコマンドはどこから来るのだろうか。

Postfix Quick reference

緊急停止
万が一 Postfix が spam を大量に送信していたり、ホストのリソースを異常に使用していることに気づいたら、postfix stop ではなく*1 abort を発行する。
sudo /sbin/service postfix abort
queueの再処理
sudo /sbin/service postfix flush
aliasの変更
cd /home/otsuka/sys/postfix
vi aliases
diff -c /etc/postfix/aliases aliases
sudo cp aliases /etc/postfix/
sudo newaliases
cp -p aliases aliases.`date +%Y%m%d`
queue掃除
sudo /usr/sbin/postsuper -d Queue-ID
main.cfの変更
cd /home/otsuka/sys/postfix
vi main.cf
diff -c /etc/postfix/main.cf main.cf
sudo cp main.cf /etc/postfix/
sudo /sbin/service postfix reload
cp -p main.cf main.cf.`date +%Y%m%d`
設定一覧を表示
/usr/sbin/postconf -n

install

postfixというユーザーは、ssdlinuxに最初からあったので、これを流用することにした。 postdropというグループを作成。グループ番号は適当でよいが、最近のFedora Coreで 使われているものと合わせることにした。

groupadd -g 90 postdrop

適当なミラーサイトからダウンロード、署名を確認。

cd ~/src
tar xzvf ../01distfiles/postfix-2.1.5.tar.gz
cd postfix-2.1.5
make

予めssdlinuxのsendmailを退避

su -
cd /usr/bin
mv mailq mailq.dist
mv newaliases newaliases.dist
cd ../sbin
rm -i sendmail (qmail導入時に /var/qmail/bin/sendmail へのリンクになっている)
mv sendmail sednmail.dist (qmailを導入していない場合)
cd /home/otsuka/src/postfix-2.1.5
/bin/sh postfix-install

いろいろ聞いてくるが、全てデフォルトでよい。 install_rootを指定してローカル・パッケージを作ろうとしたが、 postfix-installのソースを見ると、install_rootを指定してある場合は、 /var/spool/postfixのchownやchmodの処理をやってくれないようなので、 そのまま/へインストールすることにする。

/etc/postfix/aliasesを正しく設定する。 とりあえずqmailで使っていたサブアドレスは、aliasとして登録しておく。

/etc/postfix/main.cfを以下のように設定。 (プロバイダのsmtpサーバーを smtp.example.jpとする)

$ /usr/sbin/postconf -n
alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
mail_owner = postfix
mailq_path = /usr/bin/mailq
manpage_directory = /usr/local/man
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = example.jp
myhostname = example.jp
mynetworks = 192.168.0.0/24, 127.0.0.0/8
mynetworks_style = subnet
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
relay_domains = $mydestination
relayhost = [smtp.example.jp]
sample_directory = /etc/postfix
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
unknown_local_recipient_reject_code = 550

sudo /usr/sbin/postfix startで動き出したことを確認。

rootからotsukaにmailコマンドでローカル・メールが届くことを確認。

再起動時や電源投入時に自動でpostfixを起動するために /usr/local/etc/rc.d/postfix を追加。内容は以下のようにする。

#!/bin/sh
case "$1" in
  start)
       # Start daemons.
       /usr/sbin/postfix start
       ;;
  stop)
       # Stop daemons.
       /usr/sbin/postfix stop
       ;;
   *)
       echo "Usage: S99postfix {start|stop}"
       exit 1
esac
exit 0

免責事項

ここに記載されている内容を実際に運用した場合のトラブルに関しては一切責任を負えませんのでご了承ください。
Copyright 2000-2011 Koichi Otsuka


*1 stop では現在処理中のものは処理を続けてしまう

トップ   一覧 検索 最終更新   ヘルプ   最終更新のRSS