ライン

ポイント:*

ライン

 はじめに

mail/procmail

 FreeBSDのメールに連動させて動作させます。FreeBSD 9.2-RELEASEで64bit版です。

 導入と設定

導入

 導入を開始します。

# pkg install procmail

 これで完了です。

設定ファイルの作成 (/etc/mail)

HOSTNAME.example.ne.jp.mcに以下を加えます。

FEATURE(local_procmail_lmtp,`/usr/local/bin/procmail',`procmail -t -Y -a $h -z')dnl

のようにして使うことにしました。
以下のように、必要なファイルをコピーしておきます。

# cp -p /usr/local/share/examples/procmail/local_procmail_lmtp.m4 /usr/share/sendmail/cf/feature

 .mcファイルには以下を加えました。

RELAY_DOMAIN_FILE(`/etc/mail/relay-domains')dnl
define(`confCW_FILE', `-o /etc/mail/relay-domains')dnl

 DNS上でメールのMXレコードが自分HOSTを指しているものをドメイン名を以下に書いておきます。

/etc/mail/relay-domains

上記ファイルには、1ドメインに1行を記述します。

example.ne.jp
example.com

のように入れてください。好きなだけバーチャルドメインを扱えます。
.mcファイルに以下を加えます。

FEATURE(access_db, `hash -o -T<TMPF> /etc/mail/access')
FEATURE(blacklist_recipients)
FEATURE(local_lmtp)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')

/etc/mail/accessには、SPAM対策を多少記述しています。

example.ne.jp                   RELAY
example.com                     RELAY
From:nobody@                    REJECT
From:spam.exmaple.co.jp         550 User unknown
From:example.info               DISCARD
yahoo.example.name              550 We don't accept mail from spammers

のように方針を決めて記述します。
扱うドメインは RELAYを書いておく必要があります。

/etc/mail/mailertableには、上記同様に、ドメインごとの配送する内容を記述します。

.example.ne.jp     local
.example.com       local

ここに procmailの指定をすれば、Procmailで処理されます。

.example.ne.jp      procmail:/etc/mail/procmailrcs/example.ne.jp 

のように。
 この設定ファイルには、ドメイン用にどうするかを記述できるので、個人専用のドメインなどではうまくルールをレシピで記述すれば便利に使えそうです。

 .mcファイルの記述に戻ります。

FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')

これは、バーチャルドメインをローカルのアカウントとマッピングするために使うなどがあります。

postmaster@example.ne.jp     foo
webmaster@example.ne.jp      error:  550 User unknown
@example.com                 person1

上記の例で、 example.com 宛のメールはすべて person1 のアカウントに届きます。

define(`confTO_IDENT', `0s')dnl
FEATURE(always_add_domain)dnl
define(`ALIAS_FILE',`/etc/mail/aliases,/usr/local/etc/mail/aliases')dnl
define(`confMAX_MESSAGE_SIZE',`52428800')dnl 50MB
define(`confSMTP_LOGIN_MSG', 'secret')dnl

 50MB以上のメールなんて送るな!みたいな記述などです。aliasesも1つしかない人は、1つだけを記述になります。
 必要なレコードを書いて、make cf all restart で反映します。

【改訂履歴】作成:2013/11/15
【参考リンク】
Procmail Homepage … Procmailのオフィシャルページ

Copyright © 1996,1997-2006,2007- by F.Kimura,