- ベストアンサー
QmailでLASTコマンドを設定する方法
- Yahoo!メール(Webメール)の外部メール機能にはLASTコマンドが使われています。
- ただし、qmailを使用している場合には、このLASTコマンドを対応させる必要があります。
- qmailでLASTコマンドを設定する方法についてご教示ください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
/usr/local/bin/tcpserver -x /etc/tcp.pop3.cdb -v 0 po この情報から察するに、qmail-pop3dが動いているようですね。 LASTで望んだ動作をさせるには、初めに書いた手順を行う必要があります。 1. qmailのソースが展開されているディレクトリに移動します。 cd /usr/local/src/qmail-1.0.3 2. エディタで qmail-pop3d.c を編集します。 ※エディタはviでもnanoでも何でも良いです。 emacs qmail-pop3d.c # もしも、ソースの場所が見つからない時は以下をお試しください。 find / -name qmail-pop3d.c -print 3. 270行目に以下の行を追加します。 if (i + 1 > last) last = i + 1; 4. 保存してエディタを終了します。 5. ソースのビルド make 6. pop3dを停止させ、インストール make setup check 7. pop3dの起動 ※damontoolsを利用していないようなので、停止と起動はqmail-pop3dの管理を行っているスクリプトがあるのであれば、そちらで行って下さい。 以上、お試しください。
その他の回答 (3)
- s2t
- ベストアンサー率79% (47/59)
差し支えなければ、 ps -ax の結果を貼り付けて頂ければ分かるかも知れません。
補足
こんな感じになってます。 横80桁で尻切れになってる部分もあります。 PID TTY STAT TIME COMMAND 1 ? S 0:12 init [3] 2 ? SW 0:00 [keventd] 3 ? SWN 0:06 [ksoftirqd_CPU0] 4 ? SW 1:08 [kswapd] 5 ? SW 600:44 [kscand] 6 ? SW 0:00 [bdflush] 7 ? SW 0:03 [kupdated] 8 ? SW< 0:00 [mdrecoveryd] 133 ? SW 0:00 [kjournald] 134 ? SW 10:59 [kjournald] 135 ? SW 25:17 [kjournald] 136 ? SW 1056:01 [kjournald] 498 ? S 0:00 [named] 500 ? S 0:00 [named] 501 ? S 5:56 [named] 502 ? S 0:00 [named] 503 ? S 1:11 [named] 524 ? S 399:53 syslogd -m 0 529 ? S 0:00 klogd -x 604 ? S 0:43 /usr/sbin/sshd 638 ? S 0:00 xinetd -stayalive -pidfile /var/run/xinetd.pid 661 ? S 0:44 /usr/sbin/httpd -DHAVE_ACCESS -DHAVE_PROXY -DHAVE_AUT 679 ? S 0:02 [proftpd] 702 ? S 0:05 crond 720 ? S 0:00 [atd] 728 ? S 6:28 [tcpserver] 729 ? S 2:55 /var/qmail/bin/splogger smtpd 3 730 ? S 2:21 /usr/local/bin/tcpserver -x /etc/tcp.pop3.cdb -v 0 po 731 ? S 4:18 /var/qmail/bin/splogger pop3d 3 732 ? S 0:00 /bin/csh -cf /var/qmail/rc 736 ? S 243:57 [qmail-send] 738 ? S 41:45 [splogger] 739 ? S 1:51 qmail-lspawn ./Maildir/ 740 ? S 11:17 [qmail-rspawn] 741 ? S 87:25 [qmail-clean] 742 ? S 0:00 /usr/bin/perl /usr/libexec/webmin/miniserv.pl /etc/we 746 tty1 S 0:00 /sbin/mingetty tty1 747 tty2 S 0:00 /sbin/mingetty tty2 748 tty3 S 0:00 /sbin/mingetty tty3 749 tty4 S 0:00 /sbin/mingetty tty4 750 tty5 S 0:00 /sbin/mingetty tty5 751 tty6 S 0:00 /sbin/mingetty tty6 2063 ? S 8:31 /usr/local/pgsql/bin/postmaster -S -i 2064 ? S 0:31 postgres: stats buffer process 2065 ? S 0:25 postgres: stats collector process 11396 ? S 1:51 [httpd] 11397 ? S 12:31 [httpd] 11398 ? S 5:36 [httpd] 11402 ? S 1:20 [httpd] 11403 ? S 1:34 [httpd] 11500 ? S 1:18 [httpd] 12201 ? S 2:22 [httpd] 12202 ? S 1:24 [httpd] 12203 ? S 1:33 [httpd] 18965 ? S 1:25 [httpd] 29951 ? R 4:58 postgres: nobody haishin [local] SELECT 30068 ? S 0:00 [httpd] 30160 ? S 0:00 in.telnetd: **********(ホスト名)********* 30161 ? S 0:00 [login] 30162 pts/0 S 0:00 -bash 30195 pts/0 S 0:00 [su] 30196 pts/0 S 0:00 -bash 30235 ? S 0:00 [qmail-remote] 30236 pts/0 R 0:00 ps -ax
- s2t
- ベストアンサー率79% (47/59)
ps -ef | grep qmail-pop3d などとすれば調べられます。 grep qmail-pop3d としか表示されないようであれば、POP3サーバはqmail-pop3dを使用していないと判断できます。
補足
早々のご回答ありがとうございました。 rootにてご指南の psコマンドを打ってみましたが、 root 7467 7411 0 02:01 pts/0 00:00:00 grep qmail-pop3d となりました。 どうやらPOP3は qmail-pop3d ではないようです。 応用して、以下のコマンドを打ったらこんな結果になりました。 [root@sv root]# ps -ef | grep pop root 731 1 0 Aug23 ? 00:04:12 /var/qmail/bin/splogger pop3d 3 sploggerというのは関係あるんでしょうか? そして、うちのサーバのPOPサーバデーモンを見つけるには一体どうすればいいんでしょう?
- s2t
- ベストアンサー率79% (47/59)
qmailというのはqmail-pop3dをお使いと言うことでしょうか? qmail-pop3dのLASTはRETRではなく、DELEコマンドを実行した最後のメッセージNOを記録します。 なので、DELEしない限りはLASTは常に0を返します。 その為、同じメールを何度も取り込んでしまっているのでしょう。 本来ならばLASTコマンドはPOP3の標準から取り除かれたものなので、使うべきではないのですが、そうも言っていられないので回避策を挙げますと、 qmail-pop3d.c の255行目に void pop3_top(arg) char *arg; という関数がありますが、これがRETR時に呼び出されています。 270行目に if (i + 1 > last) last = i + 1; を追加してやって再コンパイル、インストールするとRETRした最後のメッセージNOがLASTで返されるようになります。
補足
サーバのPOPデーモンが qmail-pop3d なのかどうかは不明です。 どのデーモンがサーバで動いているのか、を知るにはどうすればいいんでしょうか? システム管理はまだ初心者で基本的な質問で恐縮なのですが、宜しくお願いします。
お礼
丁寧なご回答ありがとうございました。 リコンパイルはちょっと心配ということと、 Yahoo!以外に違うサイトでリモートメールが 使えてこの問題は生じなかったこととで 本件を対処したいと思います。 今後もいろいろ質問すると思いますが、 ご指導宜しくお願いします。