メール・サーバー関連のインストール手順
#navi(OpenBlockS)

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

**目次
#contents

**関連リンク
-[[ The Postfix Home Page:http://www.postfix.org/]] - 配布元
-[[Postfix のぺーじ:http://www.kobitosan.net/postfix/]] - 日本語のマニュアルやメーリングリストの案内

**Postfix Quick reference
:緊急停止|万が一 Postfix が spam を大量に送信していたり、ホストのリソースを異常に使用していることに気づいたら、postfix stop ではなく((stop では現在処理中のものは処理を続けてしまう)) 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

:転送|.forwardを書けばよいが、メールボックスに残しつつ転送する場合、
semdmailのような \user 形式は使えない。メール・フォルダを直接
指定すればよい。[[Postfix Q and A:http://www.kobitosan.net/postfix/QandA.html#4.1.5]]


**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の処理を
やってくれない((付属のPACKAGE_READMEや、http://www.kobitosan.net/postfix/readme/PACKAGE_README.jp にあるようにパッケージを解いてから post-install upgrade-package を実行するという手順になるようだ。))
ようなので、そのまま/へインストールすることにする。

/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
 recipient_delimiter = -
 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

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

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 というコマンドは、[[conn-tools:http://www.skarnet.org/software/conn-tools/]]
の一部でインストールが結構めんどくさそうだ。
qmailのdaemonも動かし続けている必要があるため、
大掛かりになり過ぎるようだ。

aliases に otsuka-123: /home/otsuka/Maildir/.Junk/ というエントリを
加えて、otsuka-123@example.jp に出すとどうなるかやってみたら、
 (maildir delivery failed: create 
 /home/otsuka/Maildir/.Junk/tmp/1106023024.P1317.minig: Permission denied)
というエラーでバウンスされてしまった。
aliasesにユーザーを指定しないときは、nobody で配送されるようだ。
Maildir の .Junk ディレクトリを go+rwx にしてみたが、だめなようだ。

aliases に Maildir を直接指定するのはあきらめて、
/etc/postmaster/main.cf に 'recipient_delimiter = -' をセットして $HOME/.forward-123に /home/otsuka/Maildir/.Junk/ と書いてみたら
うまくいったようだ。
拡張アドレスを使う場合、otsuka-abc@exmaple.jp などの未定義アドレスに
送っても通常の受信フォルダに届いてしまうようだ。.qmail-default のような
送っても通常の受信フォルダに届いてしまう。.qmail-default のような
未定義アドレスをどこに配送するかは指定できないようだ。

foo-123@exmaple.jp というアドレスを、otsuka の Junkフォルダで受けたいときは、
aliases に foo-123: otsuka-junk と書いておき、$HOME/.forward-junk に
/home/otsuka/Maildir/.Junk/ を書いておけばよい。
 foo: otsuka-foo
 foo-123: otsuka-junk
 foo-456: otsuka-bbs
のように aliases に書いて目的別にアドレスを作ってから、
そのアドレスを相手に伝えれば、
漏洩元トレーサーの付いた自動振り分けメールボックスの出来上がりだ。

#include(免責事項)

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS