Linux Server

メールサーバ構築(postfix)

  

ご注意下さい

この記事は3年以上前に書かれた記事ですので、内容が古い可能性があります。

0
(0)

あってもなくてもいいのだが、内部用のMTAとしてpostfixを導入。

設定概要
①/etc/postfix/main.cfの編集
②/var/spool/postfix/etc/resolv.confの編集

①/etc/postfix/main.cfの編集

/etc/postfix/main.cfを編集する。うちの環境では以下の通り

myhostname = kamatafl01.kamata-net.com
mydomain = kamata-net.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain $mydomain
mynetworks_style = subnet
mynetworks = 192.168.10.0/24, 192.168.30.0/24, 127.0.0.0/8
relayhost = kamatawww1
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mail_spool_directory = /var/spool/mail

②/var/spool/postfix/etc/resolv.confの編集
postfix は内部でchrootしているそうなんで、/var/spool/postfix/etc/resolv.confを読むらしい。なもんで

# cp -p /etc/resolv.conf /var/spool/postfix/etc/resolv.conf

トラブル関連

Aug 2 20:47:32 kamatafl01_in postfix/local[3872]: fatal: open database /etc/aliases.db: Permission denied

/var/log/maillogに上記エラーが吐かれていてメールがキューに溜まったまま。
いろいろ調べてみると、以下の文献あり。

postfix

 "fatal: open database /etc/aliases.db" が意味するのは?
=======================================
=DB ファイルは Berkelaey DB ライブラリによって保守されています。 上記のメッセージは次のどれかを意味します:
=ファイルが Berkeley DB バージョン 1 で作成されていて、あなたは バージョン 2 か 3 を使っている (もしくはその逆)。
=ファイルが "btree" 形式でかかれていて、Postfix が "hash" 形式を期待している (もしくはその逆)。
=問題を修正するには、 root で次のコマンドを実行して下さい:
=# newaliases
=これは Postfix が期待する形式の aliases.dbを作成します。
=または全く違う問題かも知れません。newaliases を実行した 結果が長さ 0 の aliases.db ファイルであれば、
=次の問題により苦しめられています。
= Postfix は Berkeley DB バージョン X 用のファイルを #include したのに対し、Berkeley DB バージョン Y のオブジェクト ライブ =  ラリをリンクしてコンパイルされました。ここで、X と Y は違うバージョンの Berkeley DB ライブラリです。
=これを修正するには、Berkeley DB ライブラリを適切にインストールします。例えば、RedHat version 7.0 は Berkeley DB version 3 =オブジェクト ライブラリをデフォルトで使用していますが、/usr/include/db.h ファイルはデフォルトではインストールされていません。
=正しく Postfixを構築するには、db3-devel パッケージをインストールしなければいけません。
=正しくインストールされたシステムでは、 ファイルを インクルードし、-ldb でリンクすることで同じバージョンの
=Berkeley DB ライブラリからファイルをアクセスします。
=========================================

ところがnewaliasesしてもうまくいかず…。

試行錯誤して、以下で解決。

/etc/postfix/main.cf
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/aliases

なんでかはよくわからん…^^;
しかもnewaliasesコマンドはうまくDBを作ってくれないので# postalias /etc/postfix/aliasesとしなければいけない模様。うーん。使いづらい。

この記事は役に立ちましたか? | Is this article useful for you?

評価をお願いします | Please leave your rating.

平均 | Av.: 0 / 5. 投票数 | Votes: 0

最初の評価を下さい | Please vote for the first rating.

-Linux Server
-,

© 1999 - 2021 蒲田ネット