blob: 3fc51b58a5187f799f161a7e17cda544df0a6c42 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# Copyright (C) 1993-1998 Ken'ichi Fukamachi
# All rights reserved.
# 1993-1996 fukachan@phys.titech.ac.jp
# 1996-1998 fukachan@sapporo.iij.ad.jp
#
# FML is free software; you can redistribute it and/or modify
# it under the terms of GNU General Public License.
# See the file COPYING for more details.
#
# $Id$
#
sub MailCacheDir
{
local($id, $p, $pp);
$LOG_MAIL_DIR = $LOG_MAIL_DIR || "$VAR_DIR/Mail";
$LOG_MAIL_SEQ = $LOG_MAIL_SEQ || "$LOG_MAIL_DIR/.seq";
$NUM_LOG_MAIL = $NUM_LOG_MAIL || 100;
$LOG_MAIL_FILE_SIZE_MAX = $LOG_MAIL_FILE_SIZE_MAX || 2048;
-d $LOG_MAIL_DIR || &MkDir($LOG_MAIL_DIR);
-f $LOG_MAIL_SEQ || &Touch($LOG_MAIL_SEQ);
$id = &GetFirstLineFromFile($LOG_MAIL_SEQ);
$id = $id % $NUM_LOG_MAIL;
$id++;
if (open(F, "> $LOG_MAIL_DIR/$id")) {
print F $Envelope{'Header'};
print F "\n";
for ($p = 0; $p < $LOG_MAIL_FILE_SIZE_MAX; ) {
$p = index($Envelope{'Body'}, "\n", $p + 1);
if ($p < 0) {
last;
}
else {
print F substr($Envelope{'Body'}, $pp, $p + 1 - $pp);
$pp = $p + 1;
}
}
close(F);
&Write2($id, $LOG_MAIL_SEQ);
}
else {
&Log("cannot open \$LOG_MAIL_DIR/$id");
}
}
1;
|