Benjamin Peterson | 90f5ba5 | 2010-03-11 22:53:45 +0000 | [diff] [blame] | 1 | #! /usr/bin/env python3 |
Guido van Rossum | ec758ea | 1991-06-04 20:36:54 +0000 | [diff] [blame] | 2 | |
| 3 | # Print From and Subject of messages in $MAIL. |
| 4 | # Extension to multiple mailboxes and other bells & whistles are left |
| 5 | # as exercises for the reader. |
| 6 | |
Guido van Rossum | 01ae0a6 | 1992-03-30 11:14:20 +0000 | [diff] [blame] | 7 | import sys, os |
Guido van Rossum | ec758ea | 1991-06-04 20:36:54 +0000 | [diff] [blame] | 8 | |
| 9 | # Open mailbox file. Exits with exception when this fails. |
| 10 | |
Guido van Rossum | 5558b89 | 1991-12-18 13:38:42 +0000 | [diff] [blame] | 11 | try: |
Moshe Zadka | 8b6f989 | 2001-02-20 16:21:35 +0000 | [diff] [blame] | 12 | mailbox = os.environ['MAIL'] |
Guido van Rossum | 01ae0a6 | 1992-03-30 11:14:20 +0000 | [diff] [blame] | 13 | except (AttributeError, KeyError): |
Moshe Zadka | 8b6f989 | 2001-02-20 16:21:35 +0000 | [diff] [blame] | 14 | sys.stderr.write('No environment variable $MAIL\n') |
| 15 | sys.exit(2) |
Guido van Rossum | 5558b89 | 1991-12-18 13:38:42 +0000 | [diff] [blame] | 16 | |
| 17 | try: |
Moshe Zadka | 8b6f989 | 2001-02-20 16:21:35 +0000 | [diff] [blame] | 18 | mail = open(mailbox) |
Guido van Rossum | 9d741a7 | 1992-05-19 13:48:31 +0000 | [diff] [blame] | 19 | except IOError: |
Moshe Zadka | 8b6f989 | 2001-02-20 16:21:35 +0000 | [diff] [blame] | 20 | sys.exit('Cannot open mailbox file: ' + mailbox) |
Guido van Rossum | ec758ea | 1991-06-04 20:36:54 +0000 | [diff] [blame] | 21 | |
| 22 | while 1: |
Moshe Zadka | 8b6f989 | 2001-02-20 16:21:35 +0000 | [diff] [blame] | 23 | line = mail.readline() |
| 24 | if not line: |
| 25 | break # EOF |
| 26 | if line.startswith('From '): |
| 27 | # Start of message found |
Collin Winter | 6f2df4d | 2007-07-17 20:59:35 +0000 | [diff] [blame] | 28 | print(line[:-1], end=' ') |
Moshe Zadka | 8b6f989 | 2001-02-20 16:21:35 +0000 | [diff] [blame] | 29 | while 1: |
| 30 | line = mail.readline() |
| 31 | if not line or line == '\n': |
| 32 | break |
| 33 | if line.startswith('Subject: '): |
Collin Winter | 6f2df4d | 2007-07-17 20:59:35 +0000 | [diff] [blame] | 34 | print(repr(line[9:-1]), end=' ') |
| 35 | print() |