Package: archivemail
Version: 0.7.0-1
Followup-For: Bug #272666
Hi,
here comes another one.
Attached is a patch, that will make archivemail aware of the Received
header field.
-- System Information:
Debian Release: 4.0
APT prefers stable
APT policy: (990, 'stable'), (500, 'unstable'), (500, 'testing')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-4-686
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Versions of packages archivemail depends on:
ii python 2.4.4-2 An interactive high-level object-o
archivemail recommends no packages.
-- no debconf information
--
Der Affekt gehört immer zur Sinnlichkeit, durch was für einen
Gegenstand er auch erregt werden möge.
-- Immanuel Kant
--- /usr/bin/archivemail 2007-07-26 21:45:11.000000000 +0200
+++ archivemail_rec 2007-07-31 03:10:30.000000000 +0200
@@ -183,6 +183,7 @@
mangle_from = 1
quiet = 0
read_buffer_size = 8192
+ received_date = 0
script_name = os.path.basename(sys.argv[0])
min_size = None
verbose = 0
@@ -201,18 +202,20 @@
"""
try:
opts, args = getopt.getopt(args, '?D:S:Vd:hno:F:P:qs:uv',
- ["date=", "days=", "delete", "dry-run", "help",
- "include-flagged", "no-compress", "output-dir=",
- "filter-append=", "pwfile=", "dont-mangle",
- "archive-name=",
- "preserve-unread", "quiet", "size=", "suffix=",
- "verbose", "version", "warn-duplicate"])
+ ["date=", "days=", "delete", "dry-run", "help",
+ "include-flagged", "no-compress", "output-dir=",
+ "filter-append=", "pwfile=", "dont-mangle",
+ "archive-name=", "preserve-unread", "quiet",
+ "received-date", "size=", "suffix=", "verbose",
+ "version", "warn-duplicate"])
except getopt.error, msg:
user_error(msg)
archive_by = None
for o, a in opts:
+ if o == '--received-date':
+ self.received_date = 1
if o == '--delete':
self.delete_old_mail = 1
if o == '--include-flagged':
@@ -660,6 +663,8 @@
--delete delete rather than archive old mail (use with caution!)
--include-flagged messages flagged important can also be archived
--no-compress do not compress archives with gzip
+ --received-date use first Received Header in E-Mail Message for date
+ matching
--warn-duplicate warn about duplicate Message-IDs in the same mailbox
-v, --verbose report lots of extra debugging information
-q, --quiet quiet mode - print no statistics (suitable for crontab)
@@ -760,9 +765,18 @@
assert(message != None)
# try to guess the delivery date from various headers
# get more desparate as we go through the array
- for header in ('Delivery-date', 'Date', 'Resent-Date'):
+ Datearray = ['Delivery-date', 'Date', 'Resent-Date']
+ if options.received_date:
+ Datearray.insert(0, 'Received')
+ for header in Datearray:
try:
- date = message.getdate(header)
+ if header == 'Received':
+ # getrawheader, because we need first matching header!
+ date = re.split(";", message.getrawheader('Received'))[1].strip()
+ date = rfc822.parsedate(date)
+ else:
+ date = message.getdate(header)
if date:
time_message = time.mktime(date)
vprint("using valid time found from '%s' header" % header)