- - PR -
qmail+vpopmailでメールの送受信ができない
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-03-08 06:15
お世話になります。
この会議室には、随分お世話になり感謝します。 さて、qmail+vpopmailで構築しましたが、送受信ができないでいます。 【環境】 redhat7.3 qmail-1.03 checkpassword-0.90 checkpw-1.01 courier-imap-2.2.2.20040207 daemontools-0.70 relay-ctrl-3.1.1 ezmlm-0.53 ezmlm-idx-0.40 ucspi-tcp-0.88 vpopmail-5.4.0 以上をインストールしました。 qmail起動は以下です ------------------------------------------------------------------------------ #!/bin/sh # # qmail: /var/qmail PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin [ -f /var/qmail/rc ] || exit 0 case "$1" in start) # Start daemons. echo "Starting qmail." csh -cf '/var/qmail/rc &' #Vsmtp /usr/local/bin/tcpserver -H -R -l host.domain.com -v -x /home/vpopmail/etc/tcp.smtp.cdb -u 503 -g 502 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 & #Vpop /usr/local/bin/tcpserver -H -R -l host.domain.com -v 0 pop3 /var/qmail/bin/qmail-popup host.domain.com /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1 | /var/qmail/bin/splogger pop3d 3 & echo touch /var/lock/qmail ;; stop) # Stop daemons. echo "Shutting down qmail." PID=`/bin/ps -aefw | grep qmail | awk '{print $2}'` if [ ! -z "$PID" ] ; then /bin/kill ${PID} 1> /dev/null 2>&1 fi echo rm -f /var/lock/qmail ;; *) echo "Usage: S99qmail {start|stop}" exit 1 esac exit 0 ------------------------------------------------------------------------------ crontabには ------------------------------------------------------------ 40 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null ------------------------------------------------------------ POP認証はできます(メールクライアント(OE)やtelnet localhost 110 でOKです) echo to: user1@domain.com | /var/qmail/bin/qmail-inject では、バーチャルユーザーuser1に配信されません。 ~Maildir/new に入ってきません。 ~/vpopmail/domains/domain.com/user1/Maildir/new にも入ってきません。 ホームディレクトリを持つ、UNIXユーザーのnewにも入ってきません。 echo to: user@別のドメイン.com | /var/qmail/bin/qmail-inject このようにプロバイダーのメールやその他のメールアドレスには空メールが送信されます。 まずは、内部(LAN側)で送受信できない状態です。 vpopmailを入れる前は、UNIXユーザの~Maildir/newには、メールは届いていました。 (echo to: user1@domain.com | /var/qmail/bin/qmail-inject この方法で) /var/log/messagesは Mar 8 05:45:42 localhost pop3d: 1078692342.404838 tcpserver: ok 2982 host.domain.com:192.168.0.101:110 :192.168.0.12::3169 Mar 8 05:45:42 localhost pop3d: 1078692342.549441 tcpserver: end 2982 status 256 Mar 8 05:45:42 localhost pop3d: 1078692342.549575 tcpserver: status: 0/40 Mar 8 05:47:00 localhost smtpd: 1078692420.291020 tcpserver: status: 1/40 Mar 8 05:47:00 localhost smtpd: 1078692420.291616 tcpserver: pid 2987 from ***.***.***.*** Mar 8 05:47:00 localhost smtpd: 1078692420.291944 tcpserver: ok 2987 host.domain.com:192.168.0.101:25 :207.44.238.116::33763 Mar 8 05:47:01 localhost smtpd: 1078692421.489164 tcpserver: end 2987 status 0 Mar 8 05:47:01 localhost smtpd: 1078692421.489282 tcpserver: status: 0/40 Mar 8 06:04:24 localhost sshd(pam_unix)[1624]: session closed for user san Mar 8 06:04:24 localhost su(pam_unix)[1657]: session closed for user root このようになっています。***は伏せています。グローバルIPです /var/log/maillogは Mar 8 06:02:02 localhost qmail: 1078693322.616791 starting delivery 10: msg 291176 to local user1@domain.com Mar 8 06:02:02 localhost qmail: 1078693322.616932 status: local 1/10 remote 0/20 Mar 8 06:02:02 localhost qmail: 1078693322.623931 delivery 10: deferral: Unable_to_chdir_to_maildir._(#4.2.1)/ Mar 8 06:02:02 localhost qmail: 1078693322.624072 status: local 0/10 remote 0/2 後、「.qmail」は何処にも置いていません。 vpopmailを使う場合、何処に置いて良いのか分かりませんでしたので・・・ また、一つのドメインでvpopmailを使っています。 それと、前にも投稿があっていたのですが、 ~vpopmail/ete/の open-smtp と tcp.smtp.cdb で、tcp.smtp.cdbの時間が更新されていません。 open-smtpは上記エラーログの時間くらいになっています。 長くなりましたが、おわかりになられる方、間違いに気付かれた方、何でも構いませんのでアドバイスを是非お願いします。 [ メッセージ編集済み 編集者: EMIKO 編集日時 2004-03-08 06:18 ] |
|
投稿日時: 2004-03-08 23:15
こんばんわ。
気づいた事と少々、語らせてください。 ぇーと、まず今のqmailの起動方法ではdaemontoolsを 使用していない起動法です。daemontools管理下に置くと serviceが管理するので。。。 それと、今の設定ではrelay-ctrlも起動していない状態だと思いますょ。 (上記の起動スクリプトにはrelay-crlの記述がなかったので) この2つとqmailを絡ませるには、 daemontoolsの設定が必要なのですが 具体的にどういう風に設定が必要なのかは、 作る側の環境に違いがあると思うので、こうすれば良いよーとは言えないです。 でもEMIKOさんの構築しようとしている環境は、私の環境と似ているので 私が作った時のメモでよければ参考にして自分の環境に整えて下さい。 環境(趣味で自宅にてです) OS:FreeBSD4.7 qmail-1.03 courier-imap-2.0.0 daemontools-0.76 relay-ctrl-3.1.1 ucspi-tcp-0.88 vpopmail-5.3.20 qmailとucspi-tcp(tcpserver)とrelay-ctrlは既に インストール済みとして進めますね。 でもrelay-ctrlはうちの環境だと、 chown root:wheel /usr/local/bin/relay-ctrl-allow でないとアウトルックでアクセスの際、承認ができないです。 ・DAEMONTOOLS tar xfv daemontools-0.76.tar.gz cd admin/daemontools-0.76 package/install mkdir -p /var/qmail/supervise/qmail-send/log mkdir -p /var/qmail/supervise/qmail-smtpd/log mkdir -p /var/log/qmail/qmail-send mkdir -p /var/log/qmail/qmail-smtpd mkdir -p /var/log/qmail/qmail-pop3 chmod +t /var/qmail/supervise/qmail-send chmod +t /var/qmail/supervise/qmail-smtpd chmod +t /var/qmail/supervise/qmail-pop3 chown -R /qmaill /var/log/qmail ↑qmailエルです。 ・DAEMONTOOLS用の実行スクリプト cd /var/qmail/supervise/qmail-send vi run #!/bin/sh exec env - PATH="/var/qmail/bin:$PATH" \ qmail-start ./Maildir/ splogger qmail cd /var/qmail/supervise/qmail-send/log vi run #!/bin/sh exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s2500000 /var/log/qmail/qmail-send cd /var/qmail/supervise/qmail-smtpd vi run #!/bin/sh exec /usr/local/bin/softlimit -m 2000000 \ /usr/local/bin/envdir /etc/relay-ctrl \ /usr/local/bin/tcpserver -H -R -l 0 -v -p -x /var/qmail/relay-ctrl/tcp.smtp.cdb \ -u 82 -g 81 0 smtp /usr/local/bin/relay-ctrl-check \ /var/qmail/bin/qmail-smtpd & cd /var/qmail/supervise/qmail-smtpd/log vi run #!/bin/sh exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s2500000 /var/log/qmail/qmail-smtpd cd /var/qmail/supervise/qmail-pop3 vi run #!/bin/sh env - PATH="/var/qmail/bin:/usr/local/bin:/home/vpopmail/bin" \ /usr/local/bin/envdir /etc/relay-ctrl \ /usr/local/bin/relay-ctrl-chdir \ /usr/local/bin/tcpserver -H -R -l 0 0 pop3 /var/qmail/bin/qmail-popup xxx.xxx.com \ /home/vpopmail/bin/vchkpw \ /usr/local/bin/relay-ctrl-allow \ /var/qmail/bin/qmail-pop3d Maildir & chmod 755 /var/qmail/supervise/qmail-send/run chmod 755 /var/qmail/supervise/qmail-send/log/run chmod 755 /var/qmail/supervise/qmail-smtpd/run chmod 755 /var/qmail/supervise/qmail-smtpd/log/run chmod 755 /var/qmail/supervise/qmail-pop3/run ln -s /var/qmail/supervise/qmail-send /service/qmail-send ln -s /var/qmail/supervice/qmail-smtpd /service/qmail-smtpd crontab -e 40 * * * * root /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null ※私はpop3のログを取ってないのでログが必要な場合はpop3用のlogを作ってください。 ・VPOPMAIL /usr/sbin/groupadd -g xx vchkpw /usr/sbin/useradd -u xx -g vchkpw -d /home/vpopmail vpopmail tar xfv vpopmail-5.2.1.tar.gz cd vpopmail-5.2.1 ./configure \ --enable-roaming-users=y \ --enable-relay-clear-minutes=40 \ --enable-tcpserver-file=/etc/smtp.rule \ --enable-logging=y \ make make install-strip cat /etc/smtp.rule | /usr/local/bin/tcprules /home/vpopmail/etc/smtp.rule.cdb /home/vpopmail/etc/smtp.rule.tmp ・courier-imap (./configureは一般ユーザーで行ってください) tar jxvf courier-imap-2.0.0.tar.bz2 cd courier-imap-2.0.0 ./configure --prefix=/usr/local/courier-imap \ --without-authmysql --without-authldap --without-authcram --without-authuserdb \ --with-vpopmail=yes --with-cram=yes --disable-root-check make make install cd /usr/local/courier-imap/etc cp imapd.dist imapd cp authdaemonrc.dist authdaemonrc cp imapd-ssl-dist imapd.ssl cp pop3d.dist pop3d cp pop3d-ssl.dist pop3d.ssl courier-imapの起動(手動) /usr/local/courire-imap/libexec/imapd.rc start と、ここまでざっと説明もなしに書いてしまい済みません。 |
|
投稿日時: 2004-03-09 01:19
たたらん様、ご返答ありがとうございます。
daemontoolsが起動していないのですね・・・ また、vpopmailを使用するので、relay-ctrlは必要ないと思っていました。 relay-ctrlも起動させた方がいいのでしょうか? 今から、たたらんさんが書いて下さった方法でインストールしてみます。 大変参考になります。 一つ気になることがあるのですが、@IT様の構築方法ですと /etc/init.d/qmail からの起動になるのですが、たたらんさんの方法ですと上記のqmail起動スクリプトは必要ないのかしら・・? /etc/init.d/からqmailを削除した方がいいですか? それではインストールを始めます。 起動スクリプト「qmail」の件、お返事頂けると助かります。 ものすご〜く初歩的な事を聞いているような。。。 |
|
投稿日時: 2004-03-09 03:57
ただ今、インストールと設定が終わりました。
メールの送受信をテストした結果を書きますね。 【1】 echo to: user@domain.com | /var/qmail/bin/qmail-inject UNIXのユーザ(ホームディレクトリを持つユーザ)へ送ると /home/user/Maildir/new ←にメールが届く(本当は下のvpopmailの方で受けたい) /home/vpopmail/domains/domain.com/user/Maildir/new ←届かない 【2】 echo to: user2@domain.com | /var/qmail/bin/qmail-inject バーチャルドメインのメールユーザ(UNIXのホームディレクトリは持たない) /home/vpopmail/domains/domain.com/user2/Maildir/new ←届かない [/var/log/maillog] --------------------------------------------------------------------------- Mar 9 03:12:51 localhost qmail: 1078769571.227448 delivery 43: deferral: Unable_to_chdir_to_maildir._(#4.2.1)/ --------------------------------------------------------------------------- エラーの内容↑ 【3】 メーラー(OE)で受信 /home/user/Maildir/newには入っているが、メーラーでは受信できない。 ユーザー名をvpopmailを使い user@domain.com と@以降も付けているためvpopmailのnew内を取ろうとしている? 【4】 上記受信後、メーラーから送信テスト。 以下のようにエラーになる ------------------------------------------------------------------------------ 受信者の 1 人がサーバーによって拒否されたため、メッセージを送信できませんでした。 拒否された電子メール アドレス : ****@********.com 件名 'テスト', アカウント : 'mail.domain.com', サーバー : '192.168.0.101', プロトコル : SMTP, サーバーの応答 : '553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)', ポート : 25, セキュリティ (SSL): なし, サーバー エラー : 553, エラー番号 : 0x800CCC79 ------------------------------------------------------------------------------ ※****@****は伏せ字(外部プロバイダー等のメールアドレス) 以上のテストを行いまして、 /home/vpopmail/domains/domain.com/user/Maildir/new /home/vpopmail/domains/domain.com/user2/Maildir/new にメールが届くようにしたいのですが、届かないでいます。 /var/qmail/control/virtualdomains や .qmail-***** 等の設定の仕方が悪い?のかと思うのでうすが、どのように設定してよいのか今一分かりません。 バーチャルにしたいのですが、ドメインは一つしか持っていません。 それで、一つのドメイン(グローバルIPも1つ)でWWWやFTP等も使えるユーザーとメールだけのユーザー共に/home/vpopmail/domains/domain.com/****/で受けたいと考えています(可能ですよね?) ※***は各ユーザーのユーザー名 何とか立ち上げたくて眠れない日々を過ごしています。。。 詳しい方どうかご教授下さい。お願いします。 |
|
投稿日時: 2004-03-09 06:51
お早う御座います。
眠れない日々・・・何か思い出してしまいました。 私が書いた設定で抜けている箇所があったので追記しておきますね。 ln -s /var/qmail/supervise/qmail-send /service/qmail-send ln -s /var/qmail/supervice/qmail-smtpd /service/qmail-smtpd のところでpopが抜けてました。すみません。 ln -s /var/qmail/supervice/qmail-pop3 /service/qmail-pop3 を足してください。 あと、/etc/init.d/qmail は消してください。 再起動すると、起動時に自動的にdaemontoolsが立ち上がります。 送信のエラーは、relay-ctrlの設定がどこかおかしい様ですね。 今は時間がないので帰ってからじっくりと拝見しますね。 |
|
投稿日時: 2004-03-09 09:54
どうもです。
また気づいたことなんですが、 /var/qmail/control/virtualdomains .qmail-***** 等の設定の仕方が悪い?のかと思うのでうすが。 と書いてありましたけど、vpopmailを使用するのなら ここの設定はしなくても良いと思います(2重使用する事になるので) /virtualdomains の中を初期状態(からっぽ)にして、 qmailの設定ファイル郡(defaultdomain.locals.me.plusdomain.rcphosts) の設定を見直してください。 そしてvpopmailの方も1度設定されているドメインを削除して再度作ってみてはと思います。 UNIXのユーザ(ホームディレクトリを持つユーザ)で使用ならば、 .qmail-*****の設定が必要だと私も思いますが、vpopmailでの使用だと vpopmail管理下のユーザーのMaildirへメールが配送されるのでここの設定も しなくても良いのではと思います。 それと追記ですが、relay-ctrlの設定のところで echo "/var/qamil/relay-ctrl/allow" > /etc/relay-ctrl/RELAY_CTRL_DIR と私は設定しています。 "/var/qamil/relay-ctrl/allow は /var/spool/relay-ctrl/allowと同じです。 |
|
投稿日時: 2004-03-09 14:48
EMIKO様
ども、kalzeと申します。 たしか、以前にvpopvmailなしで構築しようとされていましたよね? 入っているソフトをみると、そのときいじっていたままの状態で vpopmailを導入しているようですね。 杞憂かもしれませんが、 vpopmail導入前に設定などいじっていたものが、 悪さをしている可能性もあります。 今、qmailが動かなくなったら困る!という状態ではないとおもいますので、 一度、qmail関係でインストールしたものを消して、 最初からやってみてはどうでしょうか? 私も以前、サーバーマシンを交換するときに、 qmail関係でMTAを構築しているときに、 受信ができないことなどではまってしまいました。 解消しようと設定いじってましたが、 どこかで深みにはまったらしく、 いろいろな人に聞いてやってみてもダメな状態になりました。 そこで、一度インストールしたものを削除して、 最初からインストールしていくと、 あっさりと問題なく動作するようになりました。 わけわからん状態になったら、 できる状況であるなら、最初からやりなおして、 問題を切り分けしやすくするのも手だとおもいますよ |
|
投稿日時: 2004-03-09 16:10
全然、問いに答えてなかったのに気づきました。
なので解る範囲で書いてゆきますね。 cdbファイルもユーザーrelay-ctrlによって上書きできる必要があるため、 /etc/tcp.cdbから書き込み可能な/var/qmail/relay-ctrl/tcp.smtp.cdbに変更します。 上記の意味が分かりませんでした。 /etc/tcp.cdbのディレクトリ所有者と/var/qmail/relay-ctrlディレクトリ所有者が 違うのでそのまま(/etc/tcp.cdb)だとユーザーrelay-ctrlが 上書きが出来ないという事だと思います。 なので用は/var/qmail/relay-ctrlにtcprulesでcdbを作っちゃえばOKかなと。 私は作った後に、chown -R relay-ctrl:wheel /var/qmail/relay-ctrl としました。 ・relay-ctrlも起動させた方がいいのでしょうか? もちろんです。これがないと不正中継対策にならないぉ。 そして大分前にネット上のサイトで見た記事なのですが、 tcpserverでruleファイルを作る時、最後に:allowを入れないとダメみたいです。 私のtcp.smtp.rule の内容は 127.0.0.1:allow,RELAYCLIENT="" 192.168.1.:allow,RELAYCLIENT="" :allow です。上記以外のIPについては、最後の行 allowが該当し、 接続は許可しますが、リレーするかどうかはrcphostsの設定に 記述があるかどうかによって決まります。 @IT様の構築方法ですと /etc/init.d/qmail からの起動になるのですが、 たたらんさんの方法ですと上記のqmail起動スクリプトは必要ないのかしら・・? /etc/init.d/からqmailを削除した方がいいですか? うん。daemontoolsで設定したのなら削除してもいいと思います。 初歩的な事の積み重ねって凄く大事です。 それにこういう場では遠慮なく自分の不安な部分を出した方がいいと思いますよ。 [/var/log/maillog] --------------------------------------------------------------------------- Mar 9 03:12:51 localhost qmail: 1078769571.227448 delivery 43: deferral: Unable_to_chdir_to_maildir._(#4.2.1)/ --------------------------------------------------------------------------- このログのUnable_to_chdir_to_maildir の部分は popのスクリプトにある、/usr/local/bin/relay-ctrl-chdir が vpopmail以下のmaildirを見つけていないからだと思います。 これは/var/qmail/control/virtualdomains と qmailの設定ファイル、 vpopmailの再設定などを行ってトライしてみてください。 もしそれでもダメな場合は、 /usr/local/bin/relay-ctrl-chdir の部分をスクリプトから外して起動したら どうなるか見てください。 ・メーラーから送信テスト。 以下のようにエラーになる ------------------------------------------------------------------------------ 受信者の 1 人がサーバーによって拒否されたため、メッセージを送信できませんでした。 拒否された電子メール アドレス : ****@********.com 件名 'テスト', アカウント : 'mail.domain.com', サーバー : '192.168.0.101', プロトコル : SMTP, サーバーの応答 : '553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)', ポート : 25, セキュリティ (SSL): なし, サーバー エラー : 553, エラー番号 : 0x800CCC79 ------------------------------------------------------------------------------ ※****@****は伏せ字(外部プロバイダー等のメールアドレス) すみません。これ凄く悩んでしまいました。 私の記憶ではtcpserverのruleファイルが関係してる様に思えてたのですが、 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=5251&forum=10 上記のスレッド(拝借しましたぁー)でエラーが同じ風なのを見つけてしまったのです。 ごめんなさい。DNSは勉強不足で、ここに書き込みをされている方々の意見やら アドバイスを利用している方なので見逃してください。 バーチャルにしたいのですが、ドメインは一つしか持っていません。 それで、一つのドメイン(グローバルIPも1つ)でWWWやFTP等も使えるユーザーとメールだけのユーザー共に/home/vpopmail/domains/domain.com/****/で受けたいと考えています(可能ですよね?) なんとも云い難いのですが、下のサイトを見ると。。。いけるかなと思えます。 http://qmail.visionmakers.net/vpopmail/feature.html また、kalze様の意見も賛成です。 私もハマったら幾度となくqmailの入れ直しをしましたし、 理解を深める上でも良いと思います。 |