Category - Postfix

Linux メールが使えない場合

メールサーバーでこういうエラーが出てPHPからメールが使えない場合

postfix/sendmail[29587]: fatal: open /etc/postfix/main.cf: Permission denied

コマンドでメールの使用可否状態を確認
# getsebool httpd_can_sendmail
httpd_can_sendmail --> off

このコマンドで状態を変更する
# setsebool -P httpd_can_sendmail on

確認
# getsebool httpd_can_sendmailon
httpd_can_sendmail --> on

read more

出力ログの確認、変更

postfixがどこにログを出しているか分からないときなどに

lsof コマンドで syslogd が開いているファイルを見れます。
# lsof -c syslogd

こんなのを見つける
syslogd 1780 root 3w REG 8,2 132863 3703535 /usr/local/psa/var/log/maillog


/etc/syslog.conf の記述を変更

# Log all the mail messages in one place.
#mail.* -/usr/local/psa/var/log/maillog
mail.* -/var/log/maillog


# /etc/init.d/syslog restart で反映

read more

mail for xxxxx loops back to myself

Postfix

mail for xxxxx loops back to myself

「main.cf」の「relayhost」が自分自身になっている場合

read more

db.h: No such file or directory

drac インストールの途中でこんなエラーが出た場合

db4をインストールして解決

[root@localhost drac]# yum install db4
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* addons: ftp.nara.wide.ad.jp
* base: ftp.nara.wide.ad.jp
* epel: ftp.kddilabs.jp
* extras: ftp.nara.wide.ad.jp
* updates: ftp.nara.wide.ad.jp
Setting up Install Process
Package db4-4.3.29-10.el5.i386 already installed and latest version
Nothing to do
[root@localhost drac]# yum install db4-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* addons: ftp.nara.wide.ad.jp
* base: ftp.nara.wide.ad.jp
* epel: ftp.kddilabs.jp
* extras: ftp.nara.wide.ad.jp
* updates: ftp.nara.wide.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package db4-devel.i386 0:4.3.29-10.el5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================================================================================
Package Arch Version Repository Size
=================================================================================================================================================
Installing:
db4-devel i386 4.3.29-10.el5 base 1.9 M

Transaction Summary
=================================================================================================================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)

Total download size: 1.9 M
Is this ok [y/N]: y
Downloading Packages:
db4-devel-4.3.29-10.el5.i386.rpm 6% [=== ] 0.0 B/s | 136 kB --:-- ETA
db4-devel-4.3.29-10.el5.i386.rpm 20% [=========- ] 435 kB/s | 400 kB 00:03 ETA
db4-devel-4.3.29-10.el5.i386.rpm 31% [=============== ] 455 kB/s | 632 kB 00:02 ETA
db4-devel-4.3.29-10.el5.i386.rpm 47% [======================- ] 484 kB/s | 936 kB 00:02 ETA
db4-devel-4.3.29-10.el5.i386.rpm 61% [============================= ] 511 kB/s | 1.2 MB 00:01 ETA
db4-devel-4.3.29-10.el5.i386.rpm 78% [=====================================- ] 549 kB/s | 1.5 MB 00:00 ETA
db4-devel-4.3.29-10.el5.i386.rpm 95% [============================================== ] 585 kB/s | 1.9 MB 00:00 ETA
db4-devel-4.3.29-10.el5.i386.rpm | 1.9 MB 00:02
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : db4-devel 1/1

Installed:
db4-devel.i386 0:4.3.29-10.el5

Complete!
[root@localhost drac]# make
cc -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDASH_C -g -c -o rpc.dracd.o rpc.dracd.c
cc -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDASH_C -g -c -o drac_svc.o drac_svc.c
cc -o rpc.dracd rpc.dracd.o drac_xdr.o drac_svc.o -ldb
[root@localhost drac]# make install
install -c -o bin -g bin -m 0755 rpc.dracd /usr/local/sbin
[root@localhost drac]#

read more

postfix maillog のエラー

postfix インストール後にこんなエラーが出た場合

Jul 26 18:56:58 localhost postfix/cleanup[15298]: fatal: open database /etc/postfix/virtual.db: No such file or directory
Jul 26 18:56:59 localhost postfix/master[15112]: warning: process /usr/libexec/postfix/cleanup pid 15298 exit status 1
Jul 26 18:56:59 localhost postfix/master[15112]: warning: /usr/libexec/postfix/cleanup: bad command startup -- throttling


# postmap /etc/postfix/virtual でvirtual.db を作ってpostfix を再起動する

read more

drac インストール時のエラー

dracインストール時にこんなエラーが出た場合

[root@localhost drac]# make
cc -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDASH_C -g -c -o rpc.dracd.o rpc.dracd.c
rpc.dracd.c:21:16: error: db.h: No such file or directory
rpc.dracd.c:59: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
rpc.dracd.c: In function 'drac_run':
rpc.dracd.c:103: error: 'BTREEINFO' undeclared (first use in this function)
rpc.dracd.c:103: error: (Each undeclared identifier is reported only once
rpc.dracd.c:103: error: for each function it appears in.)
rpc.dracd.c:103: error: expected ';' before 'bti'
rpc.dracd.c:130: error: 'bti' undeclared (first use in this function)
rpc.dracd.c:133: error: 'dbp' undeclared (first use in this function)
rpc.dracd.c:135: error: 'DB_BTREE' undeclared (first use in this function)
rpc.dracd.c: In function 'dracproc_add_1_svc':
rpc.dracd.c:260: error: 'DBT' undeclared (first use in this function)
rpc.dracd.c:260: error: expected ';' before 'key'
rpc.dracd.c:310: error: 'key' undeclared (first use in this function)
rpc.dracd.c:311: error: 'data' undeclared (first use in this function)
rpc.dracd.c:336: error: 'dbp' undeclared (first use in this function)
rpc.dracd.c: In function 'expire':
rpc.dracd.c:366: error: 'DBT' undeclared (first use in this function)
rpc.dracd.c:366: error: expected ';' before 'key'
rpc.dracd.c:380: error: 'R_FIRST' undeclared (first use in this function)
rpc.dracd.c:394: error: 'key' undeclared (first use in this function)
rpc.dracd.c:395: error: 'data' undeclared (first use in this function)
rpc.dracd.c:397: error: 'dbp' undeclared (first use in this function)
rpc.dracd.c:398: error: 'R_NEXT' undeclared (first use in this function)
rpc.dracd.c:409: error: 'R_CURSOR' undeclared (first use in this function)


# yum install db4-* でライブラリをインストール

Total 985 kB/s | 2.9 MB 00:02
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : db4-utils [1/4]
Installing : db4-java [2/4]
Installing : db4-tcl [3/4]
Installing : db4-devel [4/4]

Installed: db4-devel db4-java.i386 0:4.3.29-9.fc6 db4-tcl.i386 0:4.3.29-9.fc6 db4-utils.i386 0:4.3.29-9.fc6
Complete!


[root@localhost drac]# make
cc -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDASH_C -g -c -o rpc.dracd.o rpc.dracd.c
cc -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDASH_C -g -c -o drac_svc.o drac_svc.c
cc -o rpc.dracd rpc.dracd.o drac_xdr.o drac_svc.o -ldb

できた!

read more

PHP mail MTA 指定

PHPのmail関数でメールが送信できない、ログ上は送信できても届かない場合は
サーバーのMTAの指定が間違っている場合があります。
以下のようにして正しく設定します

# alternatives --config mta

2 プログラムがあり 'mta' を提供します。

選択 コマンド
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.sendmail
2 /usr/sbin/sendmail.postfix

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2

read more

Courier-POP3, Courier-IMAP インストール

Courier Authentication Library インストール

こんなエラーが出るのを回避する
================================================
rpmbuild -ta ./courier-authlib-0.61.0.tar.bz2
error: Failed build dependencies:
/usr/include/ltdl.h is needed by courier-authlib-0.61.0-1.i386
================================================

yum install openldap-devel
yum install openldap-servers
yum install mysql-devel
yum install postgresql-devel
yum install gdbm-devel
yum provides /usr/include/ltdl.h
yum install -y /usr/include/ltdl.h

ソースを入手してrpmを作ってインストールする
wget http://jaist.dl.sourceforge.net/sourceforge/courier/courier-authlib-0.61.0.tar.bz2
rpmbuild -ta ./courier-authlib-0.61.0.tar.bz2
chmod +x /usr/src/redhat/RPMS/i386/*.rpm
rpm -ivh /usr/src/redhat/RPMS/i386/courier-authlib-0.61-0.i386.rpm
rpm -ivh /usr/src/redhat/RPMS/i386/courier-authlib-devel-0.61-0.i386.rpm
rpm -ivh /usr/src/redhat/RPMS/i386/courier-authlib-userdb-0.61-0.i386.rpm
vi /etc/authlib/authdaemonrc
authmodulelist="authuserdb"があることを確認する なければ追加する
こうなっているのでOK
authmodulelist="authuserdb authpam authpgsql authldap authmysql authcustom authpipe"

Courier-IMAP インストール

root以外のユーザーで行う
分かりにくいので/home/admin/ 以下のディレクトリで行った
cd /home/admin/
mkdir -p rpm/{SOURCES,SPECS,BUILD,RPMS/i386}
echo "%_topdir $HOME/rpm" >> .rpmmacros
wget http://jaist.dl.sourceforge.net/sourceforge/courier/courier-imap-4.0.6.tar.bz2
tar jxvf courier-imap-4.0.6.tar.bz2 courier-imap-4.0.6/courier-imap.spec
sed -i 's/fam/gamin/g' courier-imap-4.0.6/courier-imap.spec
mv courier-imap-4.0.6/courier-imap.spec rpm/SPECS/
mv courier-imap-4.0.6.tar.bz2 rpm/SOURCES/
export PATH=`echo $PATH|sed 's/\/usr\/local\/bin/\/usr\/bin/g'`
rpmbuild -bb --define 'xflags "--enable-unicode=iso-2022-jp,iso-8859-1"' rpm/SPECS/courier-imap.spec
rootで行う
chmod +x rpm/RPMS/i386/courier-imap-4.0.6-1.i386.rpm
rpm -Uvh rpm/RPMS/i386/courier-imap-4.0.6-1.i386.rpm

read more

Postfix pcre 導入

Postfixに受信メールアドレスを正規表現で解析するツールを追加インストールします。
これを使ってキャッチオール設定を行えばOpenPNEのメール画像投稿のようなアプリケーションの実装が可能となります。

まずpcre-7.7.tar.gzをダウンロード
# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz
# tar zxvf pcre-7.7.tar.gz
# cd prec-7.7
# ./configure
# make
# make install

Postfixをコンパイル
# tar xvzf postfix-2.5.2.tar.gz
# cd postfix-2.5.2
# make -f Makefile.init makefiles CCARGS='-DHAS_PCRE -Ipcre-7.7' AUXLIBS=/usr/local/src/pcre-7.7/.libs/libpcre.a
# make
# make install

# いろいろ聞かれるのでサーバーの設定に応じて入力

# postconf -m コマンドでPostfixで使えるオプションの一覧を表示して pcre があればOK

【設定の例】
main.cf に追加
virtual_alias_domains = ドメインをカンマ区切りで
virtual_alias_maps = pcre:/etc/postfix/pcre_virtual

pcre_virtualを新規作成
/^post-[0-9a-zA-Z_]@xxx.net/ command_xxx_net
 * post-[ランダム英数]@xxx.net というメールが着たら command_xxx_net というコマンドを起動します

command_xxx_netは/etc/aliases で設定
/etc/aliases
command_xxx_net: "|/usr/local/bin/php path_to_php" *ここに起動するPHPを記述

Postfix再起動
# newaliases
# postmap /etc/postfix/pcre_virtual
# postfix reload


read more

メールサーバー構築 POP Before SMTP

Postfix + Qpopper + DRAC で行います

【DRACインストール】
ここ http://pocketstudio.jp/drac-ja/index.html から
Dynamic Relay Authorization Control アーカイブをダウンロード後、展開

tar xvzf drac.tar.Z
INSTSLLにしたがってMakefileの以下の部分を変更
---------------------------
INSTALL = install
DEFS = -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDASH_C
CFLAGS = $(DEFS) -g
LDLIBS = -ldb
RPCGENFLAGS = -C -I
MANADM = 8
--------------------------
make
make install
モジュールをライブラリディレクトリにコピー
cp libdrac.a /usr/lib

起動スクリプト設定
vi /etc/rc.d/initd/dracd
-----------------------------------
# dracd-setup

# Source function library.
. /etc/rc.d/init.d/functions

# See how we were called.
case "$1" in
start)
echo -n "Starting rpc.dracd daemon: "
daemon /usr/local/sbin/rpc.dracd -i -e 30&
echo
touch /var/lock/subsys/rpc.dracd
;;
stop)
echo -n "Stopping rpc.dracd daemon: "
killproc /usr/local/sbin/rpc.dracd
echo
rm -f /var/lock/subsys/rpc.dracd
;;
*)
echo "Usage: dracd {start|stop}"
exit 1
esac
exit 0
-------------------------------------

chmod 755 /etc/rc.d/initd/dracd

設定ファイル作成
vi dracd.allow-sample の 255.255.255.255 192.168.16.8 をコメントアウトする
cp dracd.allow-sample /etc/mail/dracd.allow

テスト  *portmap が起動していること
/etc/rc.d/init.d/dracd start
解凍したディレクトリにある testing を起動
./testing localhost 192.168.1.1 (なんでもいい)

Dracのデータベースに保存されているか確認
db_dump -p /etc/mail/dracd.db
こんな風に出てくればOK
VERSION=3
format=print
type=btree
db_pagesize=512
HEADER=END
192.168.1.1 <-- testing で使用した IP が記述されいれば成功
1120372480
DATA=END

テストが終わったら初期化
./rpc.dracd -i

read more

Postfixでの.forward

Postfixをバーチャルドメインで使用している場合、
.forward で正常にメールが転送できないことがあるので
/etc/postfix/virtual で設定する

read more

Recent entry

Search

Tag Cloud

Page Top