summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
Diffstat (limited to 'Lib')
-rwxr-xr-xLib/mailbox.py64
1 files changed, 41 insertions, 23 deletions
diff --git a/Lib/mailbox.py b/Lib/mailbox.py
index e60b73b..3d7d2fc 100755
--- a/Lib/mailbox.py
+++ b/Lib/mailbox.py
@@ -1,8 +1,8 @@
-#
-# A class to hand a unix-style or mmdf-style mailboxes
-#
-# Jack Jansen, CWI, March 1994.
-#
+#!/usr/local/bin/python
+
+"""Classes to handle Unix style, MMDF style, and MH style mailboxes."""
+
+
import rfc822
import os
import regex
@@ -134,17 +134,32 @@ class MHMailbox:
return rfc822.Message(fp)
-if __name__ == '__main__':
- import posix
+def _test():
import time
import sys
import string
-## mbox = '/usr/mail/'+posix.environ['USER']
-## fp = open(mbox, 'r')
-## mb = UnixMailbox(fp)
-
- mbox = posix.environ['HOME']+'/Mail/inbox'
- mb = MHMailbox(mbox)
+ import os
+
+ args = sys.argv[1:]
+ if not args:
+ if os.environ.has_key('MAIL'):
+ mbox = os.environ['MAIL']
+ elif os.environ.has_key('MAIL'):
+ mbox = os.environ['USER']
+ else:
+ print "Who are you?"
+ return
+ else:
+ mbox = args[0]
+ if mbox[:1] == '+':
+ mbox = os.environ['HOME'] + '/Mail/' + mbox[1:]
+ elif not '/' in mbox:
+ mbox = '/usr/mail/' + mbox
+ if os.path.isdir(mbox):
+ mb = MHMailbox(mbox)
+ else:
+ fp = open(mbox, 'r')
+ mb = UnixMailbox(fp)
msgs = []
while 1:
@@ -152,17 +167,20 @@ if __name__ == '__main__':
if not msg:
break
msgs.append(msg)
- if len(sys.argv) > 1:
- num = string.atoi(sys.argv[1])
+ if len(args) > 1:
+ num = string.atoi(args[1])
print 'Message %d body:'%num
msg = msgs[num-1]
msg.rewindbody()
sys.stdout.write(msg.fp.read())
- sys.exit(0)
- print 'Mailbox',mbox,'has',len(msgs),'messages:'
- for msg in msgs:
- f = msg.getheader('from')
- s = msg.getheader('subject')
- d = (msg.getheader('date'))
- print '%20.20s %18.18s %-30.30s'%(f, d[5:], s)
-
+ else:
+ print 'Mailbox',mbox,'has',len(msgs),'messages:'
+ for msg in msgs:
+ f = msg.getheader('from')
+ s = msg.getheader('subject')
+ d = (msg.getheader('date'))
+ print '%20.20s %18.18s %-30.30s'%(f, d[5:], s)
+
+
+if __name__ == '__main__':
+ _test()