我使用procmail
and Dovecot
,但 maildir 结构相当标准化。
如果您尝试按日期存档,您可能需要Date
从标题中验证。从标题顶部读取您找到的第一个日期应该非常准确。我的消息有三个可以使用的字段Delivery-Date:
,Received:
标题和Date:
标题。对于收到的消息,Delivery-Date:
或第一个Received:
标题将具有适当的日期。对于已发送的邮件,您可能只有Date:
标题,这可能反映创建它的系统的时间,而不是您的邮件服务器。您可能希望标记标题中没有可用日期的消息。
ctime
通常应该是消息的日期,但有时会在移动或复制消息时创建新的消息副本。通常,这些操作是通过将文件重新链接到正确的目录来实现的。编辑:此脚本将打印带有文件中第一个日期的消息列表。它匹配 RFC 日期格式。正则表达式可能不是最好的。
#!/usr/bin/perl
%months = ( 'Jan'=>'01', 'Feb'=>'02', 'Mar'=>'03', 'Apr'=>'04',
'May'=>'05', 'Jun'=>'06', 'Jul'=>'07', 'Aug'=>'08',
'Sep'=>'09', 'Oct'=>'10', 'Nov'=>'11', 'Dec'=>'12' );
foreach $filename (@ARGV) {
open( MESSAGE, $filename);
while (<MESSAGE>) {
if ( m/[A-Z][a-z][a-z], ([1230][0-9]) ([A-Z][a-z][a-z]) ([12][0-9][0-9][0-9])/ ) {
print "$3-$months{$2}-$1 $filename\n";
last
}
if ( m/^$/ ) { # End of header
print "-No--Date- $filename\n";
last
}
}
close MESSAGE;
}
# EOF
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
267 次 |
最近记录: |