Binc IMAP + fetchmail + procmailにてIMAPメールサーバーを構築

対象OS

Mac OS X 10.3 (Panther)
Mac OS X 10.4 (Tiger)
Mac OS X 10.5 (Leopard)

使用ソフト

  • bincimap 1.2.13 final

Binc IMAP のインストールと設定

インストールの前に

Binc IMAP のインストールには MacPorts を使用する。port (MacPorts のコマンド)をまだインストールしていない場合は、インストールしておく。(インストールの仕方はココをクリック)

インストール

# port -d selfupdate
# port install bincimap

必要なパッケージがあれば自動的にインストールされるし、インストールの際はコンパイルが行われるので、インストールには数分かかる。

設定

ファイルのコピー

# cd /opt/local/etc/bincimap

# cp pam/bincimap.sample /etc/pam.d/bincimap
# cp bincimap.conf.sample bincimap.conf

bincimap 起動ファイルの作成

Leopard の場合

# cd /Library/LaunchDaemons
# vi imap.plist

-- 以下の内容を記述する
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
 "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>imap</string>
        <key>Nice</key>
        <integer>-7</integer>
        <key>ProgramArguments</key>
        <array>
                <string>/opt/local/bin/bincimap-up</string>
                <string>--conf=/opt/local/etc/bincimap/bincimap.conf</string>
                <string>--logtype=syslog</string>
                <string>--</string>
                <string>/opt/local/bin/checkpassword-pam</string>
                <string>-s</string>
                <string>bincimap</string>
                <string>/opt/local/bin/bincimapd</string>
        </array>
        <key>ServiceDescription</key>
        <string>binc IMAP</string>
        <key>Sockets</key>
        <dict>
                <key>imap143</key>
                <dict>
                        <key>SockServiceName</key>
                        <string>imap</string>
                </dict>
        </dict>
        <key>inetdCompatibility</key>
        <dict>
                <key>Wait</key>
                <false/>
        </dict>
</dict>
</plist>

ここをクリックして次の章へジャンプ。

Tiger 以前の場合

# cd /opt/local/etc/bincimap

# cp xinetd/imap.sample /etc/xinetd.d/imap

bincimap.conf の修正

# vi /opt/local/etc/bincimap/bincimap.conf

-- 黄色のように変更する

-- 18行目あたり
   allow plain auth in non ssl = "yes", ... SSL/TLS でなくても
					アクセス可能にする

-- 48行目あたり
//    environment ip variable = "TCPREMOTEIP"
	... コメント化して無効にしておく

-- 53行目あたり
    depot = "IMAPdir", ... スタイルの定義

-- 59行目あたり
    path = "Library/Maildir", ... メールボックスの位置と名前
	... Mac OS X の流儀にならってライブラリの下に格納する




syslog.conf の修正

Binc IMAP のログ情報を出力するようにする。ログ出力を必要としない場合、記述する必要はない。

# vi /etc/syslog.conf

-- 以下の行をファイルの一番下などに追加する。

daemon.*		/var/log/daemon.log

weekly の修正

Leopard では以下の設定は不要なのでここをクリックしてスキップする。

上記「syslog.conf の修正」にて Binc IMAP のログ情報を出力している場合には、こちらも必ず設定する。そうでないと、ログが延々ふくらみ続けて、やがて HDD をフルにしてしまう。(まあ、そこまでいくにはかなりかかるけれど)

# cd /etc
# chmod u+w weekly ... 一旦書き込みを許可にする
# vi /etc/weekly

-- 黄色部分が追加項目
-- 35 行目あたり
for i in ftp.log lookupd.log lpr.log mail.log netinfo.log hwmond.log
 ipfw.log ppp.log secure.log daemon.log; do

# chmod u-w /etc/weekly ... 元通り書込み禁止にしておく

Binc IMAP の稼動

Leopard の場合

# launchctl load /Library/LaunchDaemons/imap.plist

Tiger の場合

# kill -HUP `cat /var/run/xinetd.pid`
	... 2ヶ所とも ' ではなく ` (バッククォート)

または Mac を再起動しても良い。

procmail の設定

procmail は OS X に標準でインストールされているので設定のみ。

.procmailrc の設定

$ vi $HOME/.procmailrc

-- ここから
PATH=/usr/bin:/usr/local/bin:/opt/local/bin
LOCKFILE=$HOME/.lockmail
MAILDIR=$HOME/Library/Maildir
DEFAULT=INBOX/new
# LOGFILE=$HOME/procmail.log ... テストが終わるまでは有効化しておく
-- ここまで

※一見、procmail は必要なさそうに見えるが、fetchmail のみでは Maildir に配信できないために必要。また、spamprobe にて迷惑メールフィルタを構築する際にも必要となる。

fetchmail の設定

fetchmail は OS X に標準でインストールされているのでここでは設定のみ。

.fetchmailrc の作成

$ vi $HOME/.fetchmailrc

-- ここから
defaults
 protocol pop3
 no rewrite
 no mimedecode
# keep ... テストが終わるまではここを有効化 (# を取る)して
	サーバーにメールを残しておくとよい
 forcecr
 mda "/usr/bin/procmail"

poll Pop.Server.Domain ... 各自の POP3 サーバーを指定
 port ### ... 特別に port 番号を設定したいときは ### にポート番号を入れる(省略可)
 username Watashi@Domain ... POP3 サーバーへの ID
 password WatashiNoPassword ... POP3 サーバーへのパスワード
 ssl ... SSL 接続する場合に記述
-- ここまで

$ chmod 600 $HOME/.fetchmailrc ... 重要: 他人にパスワードを見られないため

keep を有効にしてちゃんと動作することがわかったら、コメント化 (#) すると共に、

$ fetchmail -vv -a

してサーバーに残してあったメールを吐き出しておこう。

cron の設定

cron で定期的にメールを外部 POP3 サーバーから取得する。

$ crontab -e

-- ここから
*/5 0-23 * * *	/usr/bin/fetchmail -s
-- ここまで

※編集したファイルを保存するには、crontab上で [ESC] → : → wq と入力して[Enter]する。(キーの同時押しなどではないので一つづつ入力する)

Postfix の設定

OS X が作成するシステムからのメールについても、IMAP 環境で読めるように設定しておく。

main.cf の修正

# vi /etc/postfix/main.cf

-- 黄色部分を追加・修正

-- 437 行目あたり(Tiger 436 行目・Panther 438 行目)の行頭の # を削除
mailbox_command = /usr/bin/procmail

Postfix の再起動

Panther の場合のみ。Tiger, Leopard の場合、postfix は StartupItems ではなく launchd にて管理されているのでこの作業は不要。スキップして次の章に進もう。

# /System/Library/StartupItems/Postfix/Postfix stop
# /System/Library/StartupItems/Postfix/Postfix start

メールクライアントの設定

IMAP サーバーを使うようにメールクライアントを設定する方法は、ここでは割愛。(IMAP メールサーバーを組みたいと思う人ならわかると思うので。もし必要だったらメールください)

関連リンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です