Howto use email module and write the get_payload to a file without headers only body msg

chuck amadi chuck.amadi at
Tue Jun 22 08:35:39 CEST 2004

Hi I have managed to print the output of the get_payload to screen
but I need to write to a file as I only require the email body messages
from the mailbox.My script using the fp.readlines() function writes the
entire contents of the mailbox of cause including the headers of the
emails I do not want.

I have tried a few things but I cant get to my goal.Any ideas or
pointers I need only the email body and I cant figute out why I can
using the print statement but get those results to a file.

import sys
import os
import email
import mailbox
import StringIO

fp = file ("/var/spool/mail/chucka")

mbox = mailbox.UnixMailbox(fp, email.message_from_file)
# list of body messages.
bodies = []
# mail is the file object
for mail in mbox:
        print 'mail'
        print mail['Subject']
        print mail.get_content_type()#text/plain
        print mail.get_payload()

mailout = file("/home/chucka/pythonScript/SurveyResults1.txt","r")

fp = open("/var/spool/mail/chucka")
mb = mailbox.UnixMailbox(fp, email.message_from_file)

#for bdymsg in fp.xreadlines():
#for bdymsg in fp.readlines():
#for msgbodies in mb:
#    mailout.write(bdymsg)
#    bdymsg = mail.get_payload()
#    mailout.write(mail.get_payload()
for bmsg in mb:
        bmsg = get_payload()
#       bmsg = [get_payload]
        print "mailbox file SurveyResults.txt"
# Now close the files

More information about the Python-list mailing list