[Mew-dist 1599] qmail patch of LocalMbox.pm
Yoshitomi Kentaro
yositomi at example.com
1997年 8月 23日 (土) 17:04:53 JST
吉冨です。
IM-62 の LocalMbox.pm.in の qmail の maildir 形式への
暫定対応版 patch です。たたけばきっとほこりが出てきます。(^ ^;
l.75 に
$qmail = 1;
と決めうちしているところがあります。
patch をあてたあと, qmail を使ってなければ
これを 0 にしないと当然動きません。
$qmail = 1 のとき、環境変数 MAILDIR, MAILDROP,
MAIL を見に行き、いずれもなければ $home/Maildir, $home/Mailbox
の順に見に行きます。 /var/spool とかは全く
検索対象外にしました。
あとは motonori さんが、Config の解析に $qmail
を入れてくれはるのを待つばかりです。これができたら、
$qmail = 1 の行をさくっと削除して下さい。
qmail を Mailbox でお使いの Mew な方、テスト
してみてください。ただし、安全のため ~/.qmail に
/home/user/Mailbox
/home/user/Mail/
のように両方指定しておかれた方がいいと思います。
では、debug の方よろしくお願いします。
-------------- next part --------------
--- LocalMbox.pm.in.orig Tue Aug 19 14:49:19 1997
+++ LocalMbox.pm.in Sat Aug 23 16:46:13 1997
@@ -72,19 +72,37 @@
$src =~ /local:(.*)/i;
my ($mbox) = $1;
-
+$qmail = 1;
unless ($mbox) {
# set default
# my $user = $ENV{'USER'};
# $user = $ENV{'LOGNAME'} unless ($user);
my $user = getlogin;
$user = (getpwuid($<))[0] unless ($user);
+ my $home = $ENV{'HOME'};
+ $home = (getpwuid($<))[7] unless ($home);
- foreach $p (@MailDrops) {
- if ( -f "$p/$user" ) {
- $mbox = "$p/$user";
- last;
+ if ($qmail) {
+ my (@QMailDrops) = (
+ $ENV{'MAILDIR'},
+ $ENV{'MAILDROP'},
+ $ENV{'MAIL'},
+ "$home/Maildir",
+ "$home/Mailbox"
+ );
+ foreach $p (@QMailDrops) {
+ if ( -x $p || -f $p ) {
+ $mbox = $p;
+ last;
+ }
}
+ } else {
+ foreach $p (@MailDrops) {
+ if ( -f "$p/$user" ) {
+ $mbox = "$p/$user";
+ last;
+ }
+ }
}
unless ($mbox) {
im_warn("mailbox for $user not found\n");
@@ -95,21 +113,39 @@
if (-d $mbox) {
# DIRECTORY
my $msgs = 0;
+ if ($qmail) {
+ $mbox = "$mbox/new";
+ }
unless (opendir(FOLDER, $mbox)) {
im_warn("can't open directory: $mbox\n");
return -1;
}
im_info("Getting new messages from maildir into $dst....\n")
if ($how eq 'get');
- foreach $f (sort {$a <=> $b} readdir(FOLDER)) {
- if ($f =~ /^\d+$/ && -s "$mbox/$f") {
- if (&process_file("$mbox/$f", $dst, $how) < 0) {
- return -1;
+ if ($qmail) {
+ foreach $f (sort {(-M $b) <=> (-M $a) || $a cmp $b}
+ readdir(FOLDER)) {
+ if ($f =~ /^\d+\.\d+\..+/ && -s "$mbox/$f") {
+ if (&process_file("$mbox/$f", $dst, $how) < 0) {
+ return -1;
+ }
+ if ($how eq 'get' && $main::opt_keep == 0) {
+ unlink("$mbox/$f");
+ }
+ $msgs++;
}
- if ($how eq 'get' && $main::opt_keep == 0) {
- unlink("$mbox/$f");
+ }
+ } else {
+ foreach $f (sort {$a <=> $b} readdir(FOLDER)) {
+ if ($f =~ /^\d+$/ && -s "$mbox/$f") {
+ if (&process_file("$mbox/$f", $dst, $how) < 0) {
+ return -1;
+ }
+ if ($how eq 'get' && $main::opt_keep == 0) {
+ unlink("$mbox/$f");
+ }
+ $msgs++;
}
- $msgs++;
}
}
closedir(FOLDER);
Mew-dist メーリングリストの案内