Simple Python script to read and output MailBox body to a file
chuck.amadi at ntlworld.com
Sun Jun 6 17:54:06 CEST 2004
Eric S. Johansson wrote:
> William Park wrote:
>> Chuck Amadi <chuck at smtl.co.uk> wrote:
>>> Has anyone got a simple python script that will parse a linux mbox
>>> and create a large file to view .
>> "Create a large file to view"? Care to elaborate?
> I've sent him a working example that disassembles mailboxes in both
> mbox and maildir form. Personally, I'm now scouting around for code
> that will let you delete and expunge messages from an mbox mailbox. I
> fear I need to pull my thumb out and expand the mailbox module to
> handle writing as well. mbox manipulations are butt ugly.
> Cheers I do note that I need to create a global-config file I have
> seen something on this in O'Reilly Python Programming . Albiet I dont
> need to connect to a pop3 account .Thus would this script need a bit
> of hacking or is the script I got sufficient as Monday 7th is my D-Day
> to get that script working and demo to my boss.
Note briefly my main goal is to get the body content to another file for
processing to Postgresql database.
## The email messages is read as flat text form a file or other source,
##the text is parsed to produce the object structure of the email message.
# email package for managing email messages
# Open Users Mailbox
# class Message()
# The Directory that will contain the Survey Results
dir = "/tmp/SurveyResults/"
# The Web Survey User Inbox
# Mailbox /home/testwwws/Mail/inbox
maildir = "/home/testwwws/Mail/inbox"
for file in os.listdir(maildir):
print os.path.join(maildir, file)
fp = open(os.path.join(maildir, file), "rb")
p = email.Parser.Parser()
msg = p.parse(fp)
counter = 1
for part in msg.walk():
if part.get_main_type() == 'multipart':
filename = part.get_param("name")
filename = "part-%i" % counter
counter += 1
fp = open(os.path.join(dir, filename), 'wb')
print os.path.join(dir, filename)
if __name__ == '__main__':
More information about the Python-list